category_theory.abelian.pseudoelements
⟷
Mathlib.CategoryTheory.Abelian.Pseudoelements
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
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-/
import CategoryTheory.Abelian.Exact
-import CategoryTheory.Over
-import Algebra.Category.Module.EpiMono
+import CategoryTheory.Comma.Over
+import Algebra.Category.ModuleCat.EpiMono
#align_import category_theory.abelian.pseudoelements from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -373,7 +373,7 @@ theorem pseudo_injective_of_mono {P Q : C} (f : P ⟶ Q) [Mono f] : Function.Inj
#print CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero /-
/-- A morphism that is injective on pseudoelements only maps the zero element to zero. -/
theorem zero_of_map_zero {P Q : C} (f : P ⟶ Q) : Function.Injective f → ∀ a, f a = 0 → a = 0 :=
- fun h a ha => by rw [← apply_zero f] at ha ; exact h ha
+ fun h a ha => by rw [← apply_zero f] at ha; exact h ha
#align category_theory.abelian.pseudoelement.zero_of_map_zero CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero
-/
@@ -409,11 +409,11 @@ theorem epi_of_pseudo_surjective {P Q : C} (f : P ⟶ Q) : Function.Surjective f
| ⟨pbar, hpbar⟩ =>
match Quotient.exists_rep pbar with
| ⟨p, hp⟩ =>
- have : ⟦(p.Hom ≫ f : Over Q)⟧ = ⟦𝟙 Q⟧ := by rw [← hp] at hpbar ; exact hpbar
+ have : ⟦(p.Hom ≫ f : Over Q)⟧ = ⟦𝟙 Q⟧ := by rw [← hp] at hpbar; exact hpbar
match Quotient.exact this with
| ⟨R, x, y, ex, ey, comm⟩ =>
- @epi_of_epi_fac _ _ _ _ _ (x ≫ p.Hom) f y ey <| by dsimp at comm ;
- rw [category.assoc, comm]; apply category.comp_id
+ @epi_of_epi_fac _ _ _ _ _ (x ≫ p.Hom) f y ey <| by dsimp at comm; rw [category.assoc, comm];
+ apply category.comp_id
#align category_theory.abelian.pseudoelement.epi_of_pseudo_surjective CategoryTheory.Abelian.Pseudoelement.epi_of_pseudo_surjective
-/
@@ -472,7 +472,7 @@ theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
-- By pseudo-exactness, we get a preimage.
obtain ⟨a', ha⟩ := h₂ _ this
obtain ⟨a, ha'⟩ := Quotient.exists_rep a'
- rw [← ha'] at ha
+ rw [← ha'] at ha
obtain ⟨Z, r, q, er, eq, comm⟩ := Quotient.exact ha
-- Consider the pullback of kernel.ι (cokernel.π f) and kernel.ι g.
-- The commutative diagram given by the pseudo-equality f a = b induces
@@ -509,7 +509,7 @@ theorem sub_of_eq_image {P Q : C} (f : P ⟶ Q) (x y : P) :
| ⟨R, p, q, ep, Eq, comm⟩ =>
let a'' : R ⟶ P := p ≫ a.Hom - q ≫ a'.Hom
⟨a'',
- ⟨show ⟦((p ≫ a.Hom - q ≫ a'.Hom) ≫ f : Over Q)⟧ = ⟦(0 : Q ⟶ Q)⟧ by dsimp at comm ;
+ ⟨show ⟦((p ≫ a.Hom - q ≫ a'.Hom) ≫ f : Over Q)⟧ = ⟦(0 : Q ⟶ Q)⟧ by dsimp at comm;
simp [sub_eq_zero.2 comm],
fun Z g hh => by
obtain ⟨X, p', q', ep', eq', comm'⟩ := Quotient.exact hh
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-/
-import Mathbin.CategoryTheory.Abelian.Exact
-import Mathbin.CategoryTheory.Over
-import Mathbin.Algebra.Category.Module.EpiMono
+import CategoryTheory.Abelian.Exact
+import CategoryTheory.Over
+import Algebra.Category.Module.EpiMono
#align_import category_theory.abelian.pseudoelements from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
@@ -431,7 +431,7 @@ theorem pseudo_exact_of_exact {P Q R : C} {f : P ⟶ Q} {g : Q ⟶ R} (h : Exact
obtain ⟨c, hc⟩ := kernel_fork.is_limit.lift' (is_limit_image f g h) _ hb'
-- We compute the pullback of the map into the image and c.
-- The pseudoelement induced by the first pullback map will be our preimage.
- use (pullback.fst : pullback (abelian.factor_thru_image f) c ⟶ P)
+ use(pullback.fst : pullback (abelian.factor_thru_image f) c ⟶ P)
-- It remains to show that the image of this element under f is pseudo-equal to b.
apply Quotient.sound
-- pullback.snd is an epimorphism because the map onto the image is!
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module category_theory.abelian.pseudoelements
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Abelian.Exact
import Mathbin.CategoryTheory.Over
import Mathbin.Algebra.Category.Module.EpiMono
+#align_import category_theory.abelian.pseudoelements from "leanprover-community/mathlib"@"781cb2eed038c4caf53bdbd8d20a95e5822d77df"
+
/-!
# Pseudoelements in abelian categories
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -104,10 +104,12 @@ def app {P Q : C} (f : P ⟶ Q) (a : Over P) : Over Q :=
#align category_theory.abelian.app CategoryTheory.Abelian.app
-/
+#print CategoryTheory.Abelian.app_hom /-
@[simp]
theorem app_hom {P Q : C} (f : P ⟶ Q) (a : Over P) : (app f a).Hom = a.Hom ≫ f :=
rfl
#align category_theory.abelian.app_hom CategoryTheory.Abelian.app_hom
+-/
#print CategoryTheory.Abelian.PseudoEqual /-
/-- Two arrows `f : X ⟶ P` and `g : Y ⟶ P` are called pseudo-equal if there is some object
@@ -221,9 +223,11 @@ attribute [local instance] hom_to_fun
scoped[Pseudoelement] attribute [instance] CategoryTheory.Abelian.Pseudoelement.homToFun
+#print CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk' /-
theorem pseudoApply_mk' {P Q : C} (f : P ⟶ Q) (a : Over P) : f ⟦a⟧ = ⟦a.Hom ≫ f⟧ :=
rfl
#align category_theory.abelian.pseudoelement.pseudo_apply_mk CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk'
+-/
#print CategoryTheory.Abelian.Pseudoelement.comp_apply /-
/-- Applying a pseudoelement to a composition of morphisms is the same as composing
@@ -255,12 +259,14 @@ section
attribute [local instance] has_binary_biproducts.of_has_binary_products
+#print CategoryTheory.Abelian.Pseudoelement.pseudoZero_aux /-
/-- The arrows pseudo-equal to a zero morphism are precisely the zero morphisms -/
theorem pseudoZero_aux {P : C} (Q : C) (f : Over P) : f ≈ (0 : Q ⟶ P) ↔ f.Hom = 0 :=
⟨fun ⟨R, p, q, ep, Eq, comm⟩ => zero_of_epi_comp p (by simp [comm]), fun hf =>
⟨biprod f.1 Q, biprod.fst, biprod.snd, by infer_instance, by infer_instance, by
rw [hf, over.coe_hom, has_zero_morphisms.comp_zero, has_zero_morphisms.comp_zero]⟩⟩
#align category_theory.abelian.pseudoelement.pseudo_zero_aux CategoryTheory.Abelian.Pseudoelement.pseudoZero_aux
+-/
end
@@ -305,10 +311,12 @@ theorem zero_eq_zero {P Q : C} : ⟦((0 : Q ⟶ P) : Over P)⟧ = (0 : Pseudoele
#align category_theory.abelian.pseudoelement.zero_eq_zero CategoryTheory.Abelian.Pseudoelement.zero_eq_zero
-/
+#print CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff /-
/-- The pseudoelement induced by an arrow is zero precisely when that arrow is zero -/
theorem pseudoZero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 := by
rw [← pseudo_zero_aux P a]; exact Quotient.eq'
#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff
+-/
end Zero
@@ -547,6 +555,7 @@ section Module
attribute [-instance] hom_to_fun
+#print CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal /-
/-- In the category `Module R`, if `x` and `y` are pseudoequal, then the range of the associated
morphisms is the same. -/
theorem ModuleCat.eq_range_of_pseudoequal {R : Type _} [CommRing R] {G : ModuleCat R} {x y : Over G}
@@ -565,6 +574,7 @@ theorem ModuleCat.eq_range_of_pseudoequal {R : Type _} [CommRing R] {G : ModuleC
rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
ha'', ha']
#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal
+-/
end Module
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -441,8 +441,7 @@ theorem pseudo_exact_of_exact {P Q R : C} {f : P ⟶ Q} {g : Q ⟶ R} (h : Exact
rw [abelian.image.fac]
_ = (pullback.snd ≫ c) ≫ kernel.ι (cokernel.π f) := by
rw [← category.assoc, pullback.condition]
- _ = pullback.snd ≫ b.hom := by rw [category.assoc]; congr
- ⟩
+ _ = pullback.snd ≫ b.hom := by rw [category.assoc]; congr⟩
#align category_theory.abelian.pseudoelement.pseudo_exact_of_exact CategoryTheory.Abelian.Pseudoelement.pseudo_exact_of_exact
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -113,7 +113,7 @@ theorem app_hom {P Q : C} (f : P ⟶ Q) (a : Over P) : (app f a).Hom = a.Hom ≫
/-- Two arrows `f : X ⟶ P` and `g : Y ⟶ P` are called pseudo-equal if there is some object
`R` and epimorphisms `p : R ⟶ X` and `q : R ⟶ Y` such that `p ≫ f = q ≫ g`. -/
def PseudoEqual (P : C) (f g : Over P) : Prop :=
- ∃ (R : C)(p : R ⟶ f.1)(q : R ⟶ g.1)(_ : Epi p)(_ : Epi q), p ≫ f.Hom = q ≫ g.Hom
+ ∃ (R : C) (p : R ⟶ f.1) (q : R ⟶ g.1) (_ : Epi p) (_ : Epi q), p ≫ f.Hom = q ≫ g.Hom
#align category_theory.abelian.pseudo_equal CategoryTheory.Abelian.PseudoEqual
-/
@@ -343,8 +343,8 @@ theorem zero_morphism_ext' {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0) → 0 = f
-/
scoped[Pseudoelement]
- attribute [ext]
- CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext'
+ attribute [ext] CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext
+ CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext'
#print CategoryTheory.Abelian.Pseudoelement.eq_zero_iff /-
theorem eq_zero_iff {P Q : C} (f : P ⟶ Q) : f = 0 ↔ ∀ a, f a = 0 :=
@@ -368,7 +368,7 @@ theorem pseudo_injective_of_mono {P Q : C} (f : P ⟶ Q) [Mono f] : Function.Inj
#print CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero /-
/-- A morphism that is injective on pseudoelements only maps the zero element to zero. -/
theorem zero_of_map_zero {P Q : C} (f : P ⟶ Q) : Function.Injective f → ∀ a, f a = 0 → a = 0 :=
- fun h a ha => by rw [← apply_zero f] at ha; exact h ha
+ fun h a ha => by rw [← apply_zero f] at ha ; exact h ha
#align category_theory.abelian.pseudoelement.zero_of_map_zero CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero
-/
@@ -404,11 +404,11 @@ theorem epi_of_pseudo_surjective {P Q : C} (f : P ⟶ Q) : Function.Surjective f
| ⟨pbar, hpbar⟩ =>
match Quotient.exists_rep pbar with
| ⟨p, hp⟩ =>
- have : ⟦(p.Hom ≫ f : Over Q)⟧ = ⟦𝟙 Q⟧ := by rw [← hp] at hpbar; exact hpbar
+ have : ⟦(p.Hom ≫ f : Over Q)⟧ = ⟦𝟙 Q⟧ := by rw [← hp] at hpbar ; exact hpbar
match Quotient.exact this with
| ⟨R, x, y, ex, ey, comm⟩ =>
- @epi_of_epi_fac _ _ _ _ _ (x ≫ p.Hom) f y ey <| by dsimp at comm; rw [category.assoc, comm];
- apply category.comp_id
+ @epi_of_epi_fac _ _ _ _ _ (x ≫ p.Hom) f y ey <| by dsimp at comm ;
+ rw [category.assoc, comm]; apply category.comp_id
#align category_theory.abelian.pseudoelement.epi_of_pseudo_surjective CategoryTheory.Abelian.Pseudoelement.epi_of_pseudo_surjective
-/
@@ -468,7 +468,7 @@ theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
-- By pseudo-exactness, we get a preimage.
obtain ⟨a', ha⟩ := h₂ _ this
obtain ⟨a, ha'⟩ := Quotient.exists_rep a'
- rw [← ha'] at ha
+ rw [← ha'] at ha
obtain ⟨Z, r, q, er, eq, comm⟩ := Quotient.exact ha
-- Consider the pullback of kernel.ι (cokernel.π f) and kernel.ι g.
-- The commutative diagram given by the pseudo-equality f a = b induces
@@ -505,7 +505,7 @@ theorem sub_of_eq_image {P Q : C} (f : P ⟶ Q) (x y : P) :
| ⟨R, p, q, ep, Eq, comm⟩ =>
let a'' : R ⟶ P := p ≫ a.Hom - q ≫ a'.Hom
⟨a'',
- ⟨show ⟦((p ≫ a.Hom - q ≫ a'.Hom) ≫ f : Over Q)⟧ = ⟦(0 : Q ⟶ Q)⟧ by dsimp at comm;
+ ⟨show ⟦((p ≫ a.Hom - q ≫ a'.Hom) ≫ f : Over Q)⟧ = ⟦(0 : Q ⟶ Q)⟧ by dsimp at comm ;
simp [sub_eq_zero.2 comm],
fun Z g hh => by
obtain ⟨X, p', q', ep', eq', comm'⟩ := Quotient.exact hh
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -312,7 +312,7 @@ theorem pseudoZero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 := by
end Zero
-open Pseudoelement
+open scoped Pseudoelement
#print CategoryTheory.Abelian.Pseudoelement.apply_zero /-
/-- Morphisms map the zero pseudoelement to the zero pseudoelement -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -104,12 +104,6 @@ def app {P Q : C} (f : P ⟶ Q) (a : Over P) : Over Q :=
#align category_theory.abelian.app CategoryTheory.Abelian.app
-/
-/- warning: category_theory.abelian.app_hom -> CategoryTheory.Abelian.app_hom is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.app_hom CategoryTheory.Abelian.app_homₓ'. -/
@[simp]
theorem app_hom {P Q : C} (f : P ⟶ Q) (a : Over P) : (app f a).Hom = a.Hom ≫ f :=
rfl
@@ -227,12 +221,6 @@ attribute [local instance] hom_to_fun
scoped[Pseudoelement] attribute [instance] CategoryTheory.Abelian.Pseudoelement.homToFun
-/- warning: category_theory.abelian.pseudoelement.pseudo_apply_mk -> CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk' is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{succ (max u2 u1)} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) Q) (coeFn.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (fun (_x : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) => (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) -> (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) Q)) (CategoryTheory.Abelian.Pseudoelement.homToFun.{u1, u2} C _inst_1 _inst_2 P Q) f (Quotient.mk'.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P) a)) (Quotient.mk'.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 Q) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CategoryTheory.Over.coeFromHom.{u1, u2} C _inst_1 Q (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)))))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Abelian.Pseudoelement.{u1, u2} C _inst_1 _inst_2 Q) (CategoryTheory.Abelian.Pseudoelement.pseudoApply.{u1, u2} C _inst_1 _inst_2 P Q f (Quotient.mk.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P) a)) (Quotient.mk.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 Q) (CategoryTheory.Over.mk.{u1, u2} C _inst_1 Q (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)))
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_apply_mk CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk'ₓ'. -/
theorem pseudoApply_mk' {P Q : C} (f : P ⟶ Q) (a : Over P) : f ⟦a⟧ = ⟦a.Hom ≫ f⟧ :=
rfl
#align category_theory.abelian.pseudoelement.pseudo_apply_mk CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk'
@@ -267,9 +255,6 @@ section
attribute [local instance] has_binary_biproducts.of_has_binary_products
-/- warning: category_theory.abelian.pseudoelement.pseudo_zero_aux -> CategoryTheory.Abelian.Pseudoelement.pseudoZero_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_zero_aux CategoryTheory.Abelian.Pseudoelement.pseudoZero_auxₓ'. -/
/-- The arrows pseudo-equal to a zero morphism are precisely the zero morphisms -/
theorem pseudoZero_aux {P : C} (Q : C) (f : Over P) : f ≈ (0 : Q ⟶ P) ↔ f.Hom = 0 :=
⟨fun ⟨R, p, q, ep, Eq, comm⟩ => zero_of_epi_comp p (by simp [comm]), fun hf =>
@@ -320,9 +305,6 @@ theorem zero_eq_zero {P Q : C} : ⟦((0 : Q ⟶ P) : Over P)⟧ = (0 : Pseudoele
#align category_theory.abelian.pseudoelement.zero_eq_zero CategoryTheory.Abelian.Pseudoelement.zero_eq_zero
-/
-/- warning: category_theory.abelian.pseudoelement.pseudo_zero_iff -> CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudoZero_iffₓ'. -/
/-- The pseudoelement induced by an arrow is zero precisely when that arrow is zero -/
theorem pseudoZero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 := by
rw [← pseudo_zero_aux P a]; exact Quotient.eq'
@@ -566,9 +548,6 @@ section Module
attribute [-instance] hom_to_fun
-/- warning: category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal -> CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequalₓ'. -/
/-- In the category `Module R`, if `x` and `y` are pseudoequal, then the range of the associated
morphisms is the same. -/
theorem ModuleCat.eq_range_of_pseudoequal {R : Type _} [CommRing R] {G : ModuleCat R} {x y : Over G}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -146,10 +146,8 @@ theorem pseudoEqual_trans {P : C} : Transitive (PseudoEqual P) :=
fun f g h ⟨R, p, q, ep, Eq, comm⟩ ⟨R', p', q', ep', eq', comm'⟩ =>
by
refine' ⟨pullback q p', pullback.fst ≫ p, pullback.snd ≫ q', _, _, _⟩
- · skip
- exact epi_comp _ _
- · skip
- exact epi_comp _ _
+ · skip; exact epi_comp _ _
+ · skip; exact epi_comp _ _
·
rw [category.assoc, comm, ← category.assoc, pullback.condition, category.assoc, comm',
category.assoc]
@@ -245,9 +243,7 @@ theorem pseudoApply_mk' {P Q : C} (f : P ⟶ Q) (a : Over P) : f ⟦a⟧ = ⟦a.
true. -/
theorem comp_apply {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) (a : P) : (f ≫ g) a = g (f a) :=
Quotient.inductionOn a fun x =>
- Quotient.sound <| by
- unfold app
- rw [← category.assoc, over.coe_hom]
+ Quotient.sound <| by unfold app; rw [← category.assoc, over.coe_hom]
#align category_theory.abelian.pseudoelement.comp_apply CategoryTheory.Abelian.Pseudoelement.comp_apply
-/
@@ -328,10 +324,8 @@ theorem zero_eq_zero {P Q : C} : ⟦((0 : Q ⟶ P) : Over P)⟧ = (0 : Pseudoele
<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudoZero_iffₓ'. -/
/-- The pseudoelement induced by an arrow is zero precisely when that arrow is zero -/
-theorem pseudoZero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 :=
- by
- rw [← pseudo_zero_aux P a]
- exact Quotient.eq'
+theorem pseudoZero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 := by
+ rw [← pseudo_zero_aux P a]; exact Quotient.eq'
#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff
end Zero
@@ -341,10 +335,7 @@ open Pseudoelement
#print CategoryTheory.Abelian.Pseudoelement.apply_zero /-
/-- Morphisms map the zero pseudoelement to the zero pseudoelement -/
@[simp]
-theorem apply_zero {P Q : C} (f : P ⟶ Q) : f 0 = 0 :=
- by
- rw [pseudo_zero_def, pseudo_apply_mk]
- simp
+theorem apply_zero {P Q : C} (f : P ⟶ Q) : f 0 = 0 := by rw [pseudo_zero_def, pseudo_apply_mk]; simp
#align category_theory.abelian.pseudoelement.apply_zero CategoryTheory.Abelian.Pseudoelement.apply_zero
-/
@@ -352,19 +343,14 @@ theorem apply_zero {P Q : C} (f : P ⟶ Q) : f 0 = 0 :=
/-- The zero morphism maps every pseudoelement to 0. -/
@[simp]
theorem zero_apply {P : C} (Q : C) (a : P) : (0 : P ⟶ Q) a = 0 :=
- Quotient.inductionOn a fun a' =>
- by
- rw [pseudo_zero_def, pseudo_apply_mk]
- simp
+ Quotient.inductionOn a fun a' => by rw [pseudo_zero_def, pseudo_apply_mk]; simp
#align category_theory.abelian.pseudoelement.zero_apply CategoryTheory.Abelian.Pseudoelement.zero_apply
-/
#print CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext /-
/-- An extensionality lemma for being the zero arrow. -/
-theorem zero_morphism_ext {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0) → f = 0 := fun h =>
- by
- rw [← category.id_comp f]
- exact (pseudo_zero_iff (𝟙 P ≫ f : over Q)).1 (h (𝟙 P))
+theorem zero_morphism_ext {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0) → f = 0 := fun h => by
+ rw [← category.id_comp f]; exact (pseudo_zero_iff (𝟙 P ≫ f : over Q)).1 (h (𝟙 P))
#align category_theory.abelian.pseudoelement.zero_morphism_ext CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext
-/
@@ -393,19 +379,14 @@ theorem pseudo_injective_of_mono {P Q : C} (f : P ⟶ Q) [Mono f] : Function.Inj
have : ⟦(a.Hom ≫ f : Over Q)⟧ = ⟦a'.Hom ≫ f⟧ := by convert ha
match Quotient.exact this with
| ⟨R, p, q, ep, Eq, comm⟩ =>
- ⟨R, p, q, ep, Eq,
- (cancel_mono f).1 <| by
- simp only [category.assoc]
- exact comm⟩
+ ⟨R, p, q, ep, Eq, (cancel_mono f).1 <| by simp only [category.assoc]; exact comm⟩
#align category_theory.abelian.pseudoelement.pseudo_injective_of_mono CategoryTheory.Abelian.Pseudoelement.pseudo_injective_of_mono
-/
#print CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero /-
/-- A morphism that is injective on pseudoelements only maps the zero element to zero. -/
theorem zero_of_map_zero {P Q : C} (f : P ⟶ Q) : Function.Injective f → ∀ a, f a = 0 → a = 0 :=
- fun h a ha => by
- rw [← apply_zero f] at ha
- exact h ha
+ fun h a ha => by rw [← apply_zero f] at ha; exact h ha
#align category_theory.abelian.pseudoelement.zero_of_map_zero CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero
-/
@@ -441,16 +422,10 @@ theorem epi_of_pseudo_surjective {P Q : C} (f : P ⟶ Q) : Function.Surjective f
| ⟨pbar, hpbar⟩ =>
match Quotient.exists_rep pbar with
| ⟨p, hp⟩ =>
- have : ⟦(p.Hom ≫ f : Over Q)⟧ = ⟦𝟙 Q⟧ :=
- by
- rw [← hp] at hpbar
- exact hpbar
+ have : ⟦(p.Hom ≫ f : Over Q)⟧ = ⟦𝟙 Q⟧ := by rw [← hp] at hpbar; exact hpbar
match Quotient.exact this with
| ⟨R, x, y, ex, ey, comm⟩ =>
- @epi_of_epi_fac _ _ _ _ _ (x ≫ p.Hom) f y ey <|
- by
- dsimp at comm
- rw [category.assoc, comm]
+ @epi_of_epi_fac _ _ _ _ _ (x ≫ p.Hom) f y ey <| by dsimp at comm; rw [category.assoc, comm];
apply category.comp_id
#align category_theory.abelian.pseudoelement.epi_of_pseudo_surjective CategoryTheory.Abelian.Pseudoelement.epi_of_pseudo_surjective
-/
@@ -461,9 +436,7 @@ section
/-- Two morphisms in an exact sequence are exact on pseudoelements. -/
theorem pseudo_exact_of_exact {P Q R : C} {f : P ⟶ Q} {g : Q ⟶ R} (h : Exact f g) :
(∀ a, g (f a) = 0) ∧ ∀ b, g b = 0 → ∃ a, f a = b :=
- ⟨fun a => by
- rw [← comp_apply, h.w]
- exact zero_apply _ _, fun b' =>
+ ⟨fun a => by rw [← comp_apply, h.w]; exact zero_apply _ _, fun b' =>
Quotient.inductionOn b' fun b hb =>
by
have hb' : b.Hom ≫ g = 0 := (pseudoZero_iff _).1 hb
@@ -486,9 +459,7 @@ theorem pseudo_exact_of_exact {P Q R : C} {f : P ⟶ Q} {g : Q ⟶ R} (h : Exact
rw [abelian.image.fac]
_ = (pullback.snd ≫ c) ≫ kernel.ι (cokernel.π f) := by
rw [← category.assoc, pullback.condition]
- _ = pullback.snd ≫ b.hom := by
- rw [category.assoc]
- congr
+ _ = pullback.snd ≫ b.hom := by rw [category.assoc]; congr
⟩
#align category_theory.abelian.pseudoelement.pseudo_exact_of_exact CategoryTheory.Abelian.Pseudoelement.pseudo_exact_of_exact
-/
@@ -523,9 +494,7 @@ theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
obtain ⟨z, hz₁, hz₂⟩ :=
@pullback.lift' _ _ _ _ _ _ (kernel.ι (cokernel.π f)) (kernel.ι g) _
(r ≫ a.hom ≫ abelian.factor_thru_image f) q
- (by
- simp only [category.assoc, abelian.image.fac]
- exact comm)
+ (by simp only [category.assoc, abelian.image.fac]; exact comm)
-- Let's give a name to the second pullback morphism.
let j : pullback (kernel.ι (cokernel.π f)) (kernel.ι g) ⟶ kernel g := pullback.snd
-- Since q is an epimorphism, in particular this means that j is an epimorphism.
@@ -554,9 +523,7 @@ theorem sub_of_eq_image {P Q : C} (f : P ⟶ Q) (x y : P) :
| ⟨R, p, q, ep, Eq, comm⟩ =>
let a'' : R ⟶ P := p ≫ a.Hom - q ≫ a'.Hom
⟨a'',
- ⟨show ⟦((p ≫ a.Hom - q ≫ a'.Hom) ≫ f : Over Q)⟧ = ⟦(0 : Q ⟶ Q)⟧
- by
- dsimp at comm
+ ⟨show ⟦((p ≫ a.Hom - q ≫ a'.Hom) ≫ f : Over Q)⟧ = ⟦(0 : Q ⟶ Q)⟧ by dsimp at comm;
simp [sub_eq_zero.2 comm],
fun Z g hh => by
obtain ⟨X, p', q', ep', eq', comm'⟩ := Quotient.exact hh
@@ -587,9 +554,7 @@ theorem pseudo_pullback {P Q R : C} {f : P ⟶ R} {g : Q ⟶ R} {p : P} {q : Q}
obtain ⟨Z, a, b, ea, eb, comm⟩ := Quotient.exact h
obtain ⟨l, hl₁, hl₂⟩ :=
@pullback.lift' _ _ _ _ _ _ f g _ (a ≫ x.hom) (b ≫ y.hom)
- (by
- simp only [category.assoc]
- exact comm)
+ (by simp only [category.assoc]; exact comm)
exact
⟨l,
⟨Quotient.sound ⟨Z, 𝟙 Z, a, by infer_instance, ea, by rwa [category.id_comp]⟩,
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -272,10 +272,7 @@ section
attribute [local instance] has_binary_biproducts.of_has_binary_products
/- warning: category_theory.abelian.pseudoelement.pseudo_zero_aux -> CategoryTheory.Abelian.Pseudoelement.pseudoZero_aux is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (Q : C) (f : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (HasEquivₓ.Equiv.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (setoidHasEquiv.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P)) f ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Over.coeFromHom.{u1, u2} C _inst_1 P Q)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) Q P)))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)))))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (Q : C) (f : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (HasEquiv.Equiv.{max (succ u2) (succ u1), 0} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (instHasEquiv.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P)) f (CategoryTheory.Over.mk.{u1, u2} C _inst_1 P Q (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) Q P))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_zero_aux CategoryTheory.Abelian.Pseudoelement.pseudoZero_auxₓ'. -/
/-- The arrows pseudo-equal to a zero morphism are precisely the zero morphisms -/
theorem pseudoZero_aux {P : C} (Q : C) (f : Over P) : f ≈ (0 : Q ⟶ P) ↔ f.Hom = 0 :=
@@ -328,10 +325,7 @@ theorem zero_eq_zero {P Q : C} : ⟦((0 : Q ⟶ P) : Over P)⟧ = (0 : Pseudoele
-/
/- warning: category_theory.abelian.pseudoelement.pseudo_zero_iff -> CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (Eq.{succ (max u2 u1)} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) ((fun (a : Type.{max u2 u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ (max u2 u1), succ (max u2 u1)} a b] => self.0) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (HasLiftT.mk.{succ (max u2 u1), succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (CoeTCₓ.coe.{succ (max u2 u1), succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (coeBase.{succ (max u2 u1), succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (CategoryTheory.Abelian.Pseudoelement.overToSort.{u1, u2} C _inst_1 _inst_2 P)))) a) (OfNat.ofNat.{max u2 u1} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) 0 (OfNat.mk.{max u2 u1} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) 0 (Zero.zero.{max u2 u1} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (CategoryTheory.Abelian.Pseudoelement.hasZero.{u1, u2} C _inst_1 _inst_2 P))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)))))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (Eq.{max (succ u2) (succ u1)} (Quot.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.PseudoEqual.{u1, u2} C _inst_1 P)) (Quot.mk.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.PseudoEqual.{u1, u2} C _inst_1 P) a) (OfNat.ofNat.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.{u1, u2} C _inst_1 _inst_2 P) 0 (Zero.toOfNat0.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.{u1, u2} C _inst_1 _inst_2 P) (CategoryTheory.Abelian.Pseudoelement.hasZero.{u1, u2} C _inst_1 _inst_2 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudoZero_iffₓ'. -/
/-- The pseudoelement induced by an arrow is zero precisely when that arrow is zero -/
theorem pseudoZero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 :=
@@ -608,10 +602,7 @@ section Module
attribute [-instance] hom_to_fun
/- warning: category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal -> CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_4 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)} {x : CategoryTheory.Over.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G} {y : CategoryTheory.Over.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G}, (CategoryTheory.Abelian.PseudoEqual.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G x y) -> (Eq.{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_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (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_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)))) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.hom.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)) (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_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)))) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)))) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.hom.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_4 : CommRing.{u2} R] {G : ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)} {x : CategoryTheory.Over.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G} {y : CategoryTheory.Over.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G}, (CategoryTheory.Abelian.PseudoEqual.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G x y) -> (Eq.{succ u1} (Submodule.{u2, u1} R (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (LinearMap.range.{u2, u2, u1, u1, u1} R R (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)))) (Quiver.Hom.{succ u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u2, u1} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)) (LinearMap.range.{u2, u2, u1, u1, u1} R R (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)))) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)))) (Quiver.Hom.{succ u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u2, u1} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequalₓ'. -/
/-- In the category `Module R`, if `x` and `y` are pseudoequal, then the range of the associated
morphisms is the same. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
! This file was ported from Lean 3 source module category_theory.abelian.pseudoelements
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.Algebra.Category.Module.EpiMono
/-!
# Pseudoelements in abelian categories
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A *pseudoelement* of an object `X` in an abelian category `C` is an equivalence class of arrows
ending in `X`, where two arrows are considered equivalent if we can find two epimorphisms with a
common domain making a commutative square with the two arrows. While the construction shows that
mathlib commit https://github.com/leanprover-community/mathlib/commit/28b2a92f2996d28e580450863c130955de0ed398
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
! This file was ported from Lean 3 source module category_theory.abelian.pseudoelements
-! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
+! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,9 +15,6 @@ import Mathbin.Algebra.Category.Module.EpiMono
/-!
# Pseudoelements in abelian categories
-> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
-> Any changes to this file require a corresponding PR to mathlib4.
-
A *pseudoelement* of an object `X` in an abelian category `C` is an equivalence class of arrows
ending in `X`, where two arrows are considered equivalent if we can find two epimorphisms with a
common domain making a commutative square with the two arrows. While the construction shows that
mathlib commit https://github.com/leanprover-community/mathlib/commit/2f8347015b12b0864dfaf366ec4909eb70c78740
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
! This file was ported from Lean 3 source module category_theory.abelian.pseudoelements
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 781cb2eed038c4caf53bdbd8d20a95e5822d77df
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.Algebra.Category.Module.EpiMono
/-!
# Pseudoelements in abelian categories
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A *pseudoelement* of an object `X` in an abelian category `C` is an equivalence class of arrows
ending in `X`, where two arrows are considered equivalent if we can find two epimorphisms with a
common domain making a commutative square with the two arrows. While the construction shows that
mathlib commit https://github.com/leanprover-community/mathlib/commit/cc5dd6244981976cc9da7afc4eee5682b037a013
@@ -93,35 +93,50 @@ variable {C : Type u} [Category.{v} C]
attribute [local instance] over.coe_from_hom
+#print CategoryTheory.Abelian.app /-
/-- This is just composition of morphisms in `C`. Another way to express this would be
`(over.map f).obj a`, but our definition has nicer definitional properties. -/
def app {P Q : C} (f : P ⟶ Q) (a : Over P) : Over Q :=
a.Hom ≫ f
#align category_theory.abelian.app CategoryTheory.Abelian.app
+-/
+/- warning: category_theory.abelian.app_hom -> CategoryTheory.Abelian.app_hom is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.app.{u1, u2} C _inst_1 P Q f a)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.app_hom CategoryTheory.Abelian.app_homₓ'. -/
@[simp]
theorem app_hom {P Q : C} (f : P ⟶ Q) (a : Over P) : (app f a).Hom = a.Hom ≫ f :=
rfl
#align category_theory.abelian.app_hom CategoryTheory.Abelian.app_hom
+#print CategoryTheory.Abelian.PseudoEqual /-
/-- Two arrows `f : X ⟶ P` and `g : Y ⟶ P` are called pseudo-equal if there is some object
`R` and epimorphisms `p : R ⟶ X` and `q : R ⟶ Y` such that `p ≫ f = q ≫ g`. -/
def PseudoEqual (P : C) (f g : Over P) : Prop :=
∃ (R : C)(p : R ⟶ f.1)(q : R ⟶ g.1)(_ : Epi p)(_ : Epi q), p ≫ f.Hom = q ≫ g.Hom
#align category_theory.abelian.pseudo_equal CategoryTheory.Abelian.PseudoEqual
+-/
+#print CategoryTheory.Abelian.pseudoEqual_refl /-
theorem pseudoEqual_refl {P : C} : Reflexive (PseudoEqual P) := fun f =>
⟨f.1, 𝟙 f.1, 𝟙 f.1, by infer_instance, by infer_instance, by simp⟩
#align category_theory.abelian.pseudo_equal_refl CategoryTheory.Abelian.pseudoEqual_refl
+-/
+#print CategoryTheory.Abelian.pseudoEqual_symm /-
theorem pseudoEqual_symm {P : C} : Symmetric (PseudoEqual P) := fun f g ⟨R, p, q, ep, Eq, comm⟩ =>
⟨R, q, p, Eq, ep, comm.symm⟩
#align category_theory.abelian.pseudo_equal_symm CategoryTheory.Abelian.pseudoEqual_symm
+-/
variable [Abelian.{v} C]
section
+#print CategoryTheory.Abelian.pseudoEqual_trans /-
/-- Pseudoequality is transitive: Just take the pullback. The pullback morphisms will
be epimorphisms since in an abelian category, pullbacks of epimorphisms are epimorphisms. -/
theorem pseudoEqual_trans {P : C} : Transitive (PseudoEqual P) :=
@@ -136,68 +151,92 @@ theorem pseudoEqual_trans {P : C} : Transitive (PseudoEqual P) :=
rw [category.assoc, comm, ← category.assoc, pullback.condition, category.assoc, comm',
category.assoc]
#align category_theory.abelian.pseudo_equal_trans CategoryTheory.Abelian.pseudoEqual_trans
+-/
end
+#print CategoryTheory.Abelian.Pseudoelement.setoid /-
/-- The arrows with codomain `P` equipped with the equivalence relation of being pseudo-equal. -/
def Pseudoelement.setoid (P : C) : Setoid (Over P) :=
⟨_, ⟨pseudoEqual_refl, pseudoEqual_symm, pseudoEqual_trans⟩⟩
#align category_theory.abelian.pseudoelement.setoid CategoryTheory.Abelian.Pseudoelement.setoid
+-/
attribute [local instance] pseudoelement.setoid
+#print CategoryTheory.Abelian.Pseudoelement /-
/-- A `pseudoelement` of `P` is just an equivalence class of arrows ending in `P` by being
pseudo-equal. -/
def Pseudoelement (P : C) : Type max u v :=
Quotient (Pseudoelement.setoid P)
#align category_theory.abelian.pseudoelement CategoryTheory.Abelian.Pseudoelement
+-/
namespace Pseudoelement
+#print CategoryTheory.Abelian.Pseudoelement.objectToSort /-
/-- A coercion from an object of an abelian category to its pseudoelements. -/
def objectToSort : CoeSort C (Type max u v) :=
⟨fun P => Pseudoelement P⟩
#align category_theory.abelian.pseudoelement.object_to_sort CategoryTheory.Abelian.Pseudoelement.objectToSort
+-/
attribute [local instance] object_to_sort
scoped[Pseudoelement] attribute [instance] CategoryTheory.Abelian.Pseudoelement.objectToSort
+#print CategoryTheory.Abelian.Pseudoelement.overToSort /-
/-- A coercion from an arrow with codomain `P` to its associated pseudoelement. -/
def overToSort {P : C} : Coe (Over P) (Pseudoelement P) :=
⟨Quot.mk (PseudoEqual P)⟩
#align category_theory.abelian.pseudoelement.over_to_sort CategoryTheory.Abelian.Pseudoelement.overToSort
+-/
attribute [local instance] over_to_sort
+#print CategoryTheory.Abelian.Pseudoelement.over_coe_def /-
theorem over_coe_def {P Q : C} (a : Q ⟶ P) : (a : Pseudoelement P) = ⟦a⟧ :=
rfl
#align category_theory.abelian.pseudoelement.over_coe_def CategoryTheory.Abelian.Pseudoelement.over_coe_def
+-/
+#print CategoryTheory.Abelian.Pseudoelement.pseudoApply_aux /-
/-- If two elements are pseudo-equal, then their composition with a morphism is, too. -/
-theorem pseudo_apply_aux {P Q : C} (f : P ⟶ Q) (a b : Over P) : a ≈ b → app f a ≈ app f b :=
+theorem pseudoApply_aux {P Q : C} (f : P ⟶ Q) (a b : Over P) : a ≈ b → app f a ≈ app f b :=
fun ⟨R, p, q, ep, Eq, comm⟩ =>
⟨R, p, q, ep, Eq, show p ≫ a.Hom ≫ f = q ≫ b.Hom ≫ f by rw [reassoc_of comm]⟩
-#align category_theory.abelian.pseudoelement.pseudo_apply_aux CategoryTheory.Abelian.Pseudoelement.pseudo_apply_aux
+#align category_theory.abelian.pseudoelement.pseudo_apply_aux CategoryTheory.Abelian.Pseudoelement.pseudoApply_aux
+-/
+#print CategoryTheory.Abelian.Pseudoelement.pseudoApply /-
/-- A morphism `f` induces a function `pseudo_apply f` on pseudoelements. -/
def pseudoApply {P Q : C} (f : P ⟶ Q) : P → Q :=
- Quotient.map (fun g : Over P => app f g) (pseudo_apply_aux f)
+ Quotient.map (fun g : Over P => app f g) (pseudoApply_aux f)
#align category_theory.abelian.pseudoelement.pseudo_apply CategoryTheory.Abelian.Pseudoelement.pseudoApply
+-/
+#print CategoryTheory.Abelian.Pseudoelement.homToFun /-
/-- A coercion from morphisms to functions on pseudoelements -/
def homToFun {P Q : C} : CoeFun (P ⟶ Q) fun _ => P → Q :=
⟨pseudoApply⟩
#align category_theory.abelian.pseudoelement.hom_to_fun CategoryTheory.Abelian.Pseudoelement.homToFun
+-/
attribute [local instance] hom_to_fun
scoped[Pseudoelement] attribute [instance] CategoryTheory.Abelian.Pseudoelement.homToFun
-theorem pseudo_apply_mk' {P Q : C} (f : P ⟶ Q) (a : Over P) : f ⟦a⟧ = ⟦a.Hom ≫ f⟧ :=
+/- warning: category_theory.abelian.pseudoelement.pseudo_apply_mk -> CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk' is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{succ (max u2 u1)} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) Q) (coeFn.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (fun (_x : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) => (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) -> (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) Q)) (CategoryTheory.Abelian.Pseudoelement.homToFun.{u1, u2} C _inst_1 _inst_2 P Q) f (Quotient.mk'.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P) a)) (Quotient.mk'.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 Q) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q) (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CategoryTheory.Over.coeFromHom.{u1, u2} C _inst_1 Q (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)))))) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} {Q : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) P Q) (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Abelian.Pseudoelement.{u1, u2} C _inst_1 _inst_2 Q) (CategoryTheory.Abelian.Pseudoelement.pseudoApply.{u1, u2} C _inst_1 _inst_2 P Q f (Quotient.mk.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P) a)) (Quotient.mk.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 Q) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 Q) (CategoryTheory.Over.mk.{u1, u2} C _inst_1 Q (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) Q (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_apply_mk CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk'ₓ'. -/
+theorem pseudoApply_mk' {P Q : C} (f : P ⟶ Q) (a : Over P) : f ⟦a⟧ = ⟦a.Hom ≫ f⟧ :=
rfl
-#align category_theory.abelian.pseudoelement.pseudo_apply_mk CategoryTheory.Abelian.Pseudoelement.pseudo_apply_mk'
+#align category_theory.abelian.pseudoelement.pseudo_apply_mk CategoryTheory.Abelian.Pseudoelement.pseudoApply_mk'
+#print CategoryTheory.Abelian.Pseudoelement.comp_apply /-
/-- Applying a pseudoelement to a composition of morphisms is the same as composing
with each morphism. Sadly, this is not a definitional equality, but at least it is
true. -/
@@ -207,11 +246,14 @@ theorem comp_apply {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) (a : P) : (f ≫ g) a
unfold app
rw [← category.assoc, over.coe_hom]
#align category_theory.abelian.pseudoelement.comp_apply CategoryTheory.Abelian.Pseudoelement.comp_apply
+-/
+#print CategoryTheory.Abelian.Pseudoelement.comp_comp /-
/-- Composition of functions on pseudoelements is composition of morphisms. -/
theorem comp_comp {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) : g ∘ f = f ≫ g :=
funext fun x => (comp_apply _ _ _).symm
#align category_theory.abelian.pseudoelement.comp_comp CategoryTheory.Abelian.Pseudoelement.comp_comp
+-/
section Zero
@@ -226,24 +268,35 @@ section
attribute [local instance] has_binary_biproducts.of_has_binary_products
+/- warning: category_theory.abelian.pseudoelement.pseudo_zero_aux -> CategoryTheory.Abelian.Pseudoelement.pseudoZero_aux is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (Q : C) (f : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (HasEquivₓ.Equiv.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (setoidHasEquiv.{succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P)) f ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Over.coeFromHom.{u1, u2} C _inst_1 P Q)))) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) Q P)))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)))))))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (Q : C) (f : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (HasEquiv.Equiv.{max (succ u2) (succ u1), 0} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (instHasEquiv.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.Pseudoelement.setoid.{u1, u2} C _inst_1 _inst_2 P)) f (CategoryTheory.Over.mk.{u1, u2} C _inst_1 P Q (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) Q P) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) Q P))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) f))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_zero_aux CategoryTheory.Abelian.Pseudoelement.pseudoZero_auxₓ'. -/
/-- The arrows pseudo-equal to a zero morphism are precisely the zero morphisms -/
-theorem pseudo_zero_aux {P : C} (Q : C) (f : Over P) : f ≈ (0 : Q ⟶ P) ↔ f.Hom = 0 :=
+theorem pseudoZero_aux {P : C} (Q : C) (f : Over P) : f ≈ (0 : Q ⟶ P) ↔ f.Hom = 0 :=
⟨fun ⟨R, p, q, ep, Eq, comm⟩ => zero_of_epi_comp p (by simp [comm]), fun hf =>
⟨biprod f.1 Q, biprod.fst, biprod.snd, by infer_instance, by infer_instance, by
rw [hf, over.coe_hom, has_zero_morphisms.comp_zero, has_zero_morphisms.comp_zero]⟩⟩
-#align category_theory.abelian.pseudoelement.pseudo_zero_aux CategoryTheory.Abelian.Pseudoelement.pseudo_zero_aux
+#align category_theory.abelian.pseudoelement.pseudo_zero_aux CategoryTheory.Abelian.Pseudoelement.pseudoZero_aux
end
+#print CategoryTheory.Abelian.Pseudoelement.zero_eq_zero' /-
theorem zero_eq_zero' {P Q R : C} : ⟦((0 : Q ⟶ P) : Over P)⟧ = ⟦((0 : R ⟶ P) : Over P)⟧ :=
- Quotient.sound <| (pseudo_zero_aux R _).2 rfl
+ Quotient.sound <| (pseudoZero_aux R _).2 rfl
#align category_theory.abelian.pseudoelement.zero_eq_zero' CategoryTheory.Abelian.Pseudoelement.zero_eq_zero'
+-/
+#print CategoryTheory.Abelian.Pseudoelement.pseudoZero /-
/-- The zero pseudoelement is the class of a zero morphism -/
def pseudoZero {P : C} : P :=
⟦(0 : P ⟶ P)⟧
#align category_theory.abelian.pseudoelement.pseudo_zero CategoryTheory.Abelian.Pseudoelement.pseudoZero
+-/
+#print CategoryTheory.Abelian.Pseudoelement.hasZero /-
/-- We can not use `pseudo_zero` as a global `has_zero` instance,
as it would trigger on any type class search for `has_zero` applied to a `coe_sort`.
This would be too expensive.
@@ -251,32 +304,44 @@ This would be too expensive.
def hasZero {P : C} : Zero P :=
⟨pseudoZero⟩
#align category_theory.abelian.pseudoelement.has_zero CategoryTheory.Abelian.Pseudoelement.hasZero
+-/
scoped[Pseudoelement] attribute [instance] CategoryTheory.Abelian.Pseudoelement.hasZero
instance {P : C} : Inhabited (Pseudoelement P) :=
⟨0⟩
-theorem pseudo_zero_def {P : C} : (0 : Pseudoelement P) = ⟦(0 : P ⟶ P)⟧ :=
+#print CategoryTheory.Abelian.Pseudoelement.pseudoZero_def /-
+theorem pseudoZero_def {P : C} : (0 : Pseudoelement P) = ⟦(0 : P ⟶ P)⟧ :=
rfl
-#align category_theory.abelian.pseudoelement.pseudo_zero_def CategoryTheory.Abelian.Pseudoelement.pseudo_zero_def
+#align category_theory.abelian.pseudoelement.pseudo_zero_def CategoryTheory.Abelian.Pseudoelement.pseudoZero_def
+-/
+#print CategoryTheory.Abelian.Pseudoelement.zero_eq_zero /-
@[simp]
theorem zero_eq_zero {P Q : C} : ⟦((0 : Q ⟶ P) : Over P)⟧ = (0 : Pseudoelement P) :=
zero_eq_zero'
#align category_theory.abelian.pseudoelement.zero_eq_zero CategoryTheory.Abelian.Pseudoelement.zero_eq_zero
+-/
+/- warning: category_theory.abelian.pseudoelement.pseudo_zero_iff -> CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (Eq.{succ (max u2 u1)} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) ((fun (a : Type.{max u2 u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ (max u2 u1), succ (max u2 u1)} a b] => self.0) (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (HasLiftT.mk.{succ (max u2 u1), succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (CoeTCₓ.coe.{succ (max u2 u1), succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (coeBase.{succ (max u2 u1), succ (max u2 u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (CategoryTheory.Abelian.Pseudoelement.overToSort.{u1, u2} C _inst_1 _inst_2 P)))) a) (OfNat.ofNat.{max u2 u1} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) 0 (OfNat.mk.{max u2 u1} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) 0 (Zero.zero.{max u2 u1} (coeSort.{succ u2, succ (succ (max u2 u1))} C Type.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.objectToSort.{u1, u2} C _inst_1 _inst_2) P) (CategoryTheory.Abelian.Pseudoelement.hasZero.{u1, u2} C _inst_1 _inst_2 P))))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) 0 (OfNat.mk.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) 0 (Zero.zero.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)))))))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] [_inst_2 : CategoryTheory.Abelian.{u1, u2} C _inst_1] {P : C} (a : CategoryTheory.Over.{u1, u2} C _inst_1 P), Iff (Eq.{max (succ u2) (succ u1)} (Quot.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.PseudoEqual.{u1, u2} C _inst_1 P)) (Quot.mk.{max (succ u2) (succ u1)} (CategoryTheory.Over.{u1, u2} C _inst_1 P) (CategoryTheory.Abelian.PseudoEqual.{u1, u2} C _inst_1 P) a) (OfNat.ofNat.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.{u1, u2} C _inst_1 _inst_2 P) 0 (Zero.toOfNat0.{max u2 u1} (CategoryTheory.Abelian.Pseudoelement.{u1, u2} C _inst_1 _inst_2 P) (CategoryTheory.Abelian.Pseudoelement.hasZero.{u1, u2} C _inst_1 _inst_2 P)))) (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a) (OfNat.ofNat.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) 0 (Zero.toOfNat0.{u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u1, u2} C _inst_1 (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, u2} C _inst_1 (CategoryTheory.Abelian.toPreadditive.{u1, u2} C _inst_1 _inst_2)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 P) a))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudoZero_iffₓ'. -/
/-- The pseudoelement induced by an arrow is zero precisely when that arrow is zero -/
-theorem pseudo_zero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 :=
+theorem pseudoZero_iff {P : C} (a : Over P) : (a : P) = 0 ↔ a.Hom = 0 :=
by
rw [← pseudo_zero_aux P a]
exact Quotient.eq'
-#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudo_zero_iff
+#align category_theory.abelian.pseudoelement.pseudo_zero_iff CategoryTheory.Abelian.Pseudoelement.pseudoZero_iff
end Zero
open Pseudoelement
+#print CategoryTheory.Abelian.Pseudoelement.apply_zero /-
/-- Morphisms map the zero pseudoelement to the zero pseudoelement -/
@[simp]
theorem apply_zero {P Q : C} (f : P ⟶ Q) : f 0 = 0 :=
@@ -284,7 +349,9 @@ theorem apply_zero {P Q : C} (f : P ⟶ Q) : f 0 = 0 :=
rw [pseudo_zero_def, pseudo_apply_mk]
simp
#align category_theory.abelian.pseudoelement.apply_zero CategoryTheory.Abelian.Pseudoelement.apply_zero
+-/
+#print CategoryTheory.Abelian.Pseudoelement.zero_apply /-
/-- The zero morphism maps every pseudoelement to 0. -/
@[simp]
theorem zero_apply {P : C} (Q : C) (a : P) : (0 : P ⟶ Q) a = 0 :=
@@ -293,26 +360,34 @@ theorem zero_apply {P : C} (Q : C) (a : P) : (0 : P ⟶ Q) a = 0 :=
rw [pseudo_zero_def, pseudo_apply_mk]
simp
#align category_theory.abelian.pseudoelement.zero_apply CategoryTheory.Abelian.Pseudoelement.zero_apply
+-/
+#print CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext /-
/-- An extensionality lemma for being the zero arrow. -/
theorem zero_morphism_ext {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0) → f = 0 := fun h =>
by
rw [← category.id_comp f]
exact (pseudo_zero_iff (𝟙 P ≫ f : over Q)).1 (h (𝟙 P))
#align category_theory.abelian.pseudoelement.zero_morphism_ext CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext
+-/
+#print CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext' /-
theorem zero_morphism_ext' {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0) → 0 = f :=
Eq.symm ∘ zero_morphism_ext f
#align category_theory.abelian.pseudoelement.zero_morphism_ext' CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext'
+-/
scoped[Pseudoelement]
attribute [ext]
CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext CategoryTheory.Abelian.Pseudoelement.zero_morphism_ext'
+#print CategoryTheory.Abelian.Pseudoelement.eq_zero_iff /-
theorem eq_zero_iff {P Q : C} (f : P ⟶ Q) : f = 0 ↔ ∀ a, f a = 0 :=
⟨fun h a => by simp [h], zero_morphism_ext _⟩
#align category_theory.abelian.pseudoelement.eq_zero_iff CategoryTheory.Abelian.Pseudoelement.eq_zero_iff
+-/
+#print CategoryTheory.Abelian.Pseudoelement.pseudo_injective_of_mono /-
/-- A monomorphism is injective on pseudoelements. -/
theorem pseudo_injective_of_mono {P Q : C} (f : P ⟶ Q) [Mono f] : Function.Injective f :=
fun abar abar' =>
@@ -326,23 +401,29 @@ theorem pseudo_injective_of_mono {P Q : C} (f : P ⟶ Q) [Mono f] : Function.Inj
simp only [category.assoc]
exact comm⟩
#align category_theory.abelian.pseudoelement.pseudo_injective_of_mono CategoryTheory.Abelian.Pseudoelement.pseudo_injective_of_mono
+-/
+#print CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero /-
/-- A morphism that is injective on pseudoelements only maps the zero element to zero. -/
theorem zero_of_map_zero {P Q : C} (f : P ⟶ Q) : Function.Injective f → ∀ a, f a = 0 → a = 0 :=
fun h a ha => by
rw [← apply_zero f] at ha
exact h ha
#align category_theory.abelian.pseudoelement.zero_of_map_zero CategoryTheory.Abelian.Pseudoelement.zero_of_map_zero
+-/
+#print CategoryTheory.Abelian.Pseudoelement.mono_of_zero_of_map_zero /-
/-- A morphism that only maps the zero pseudoelement to zero is a monomorphism. -/
theorem mono_of_zero_of_map_zero {P Q : C} (f : P ⟶ Q) : (∀ a, f a = 0 → a = 0) → Mono f := fun h =>
(mono_iff_cancel_zero _).2 fun R g hg =>
- (pseudo_zero_iff (g : Over P)).1 <|
- h _ <| show f g = 0 from (pseudo_zero_iff (g ≫ f : Over Q)).2 hg
+ (pseudoZero_iff (g : Over P)).1 <|
+ h _ <| show f g = 0 from (pseudoZero_iff (g ≫ f : Over Q)).2 hg
#align category_theory.abelian.pseudoelement.mono_of_zero_of_map_zero CategoryTheory.Abelian.Pseudoelement.mono_of_zero_of_map_zero
+-/
section
+#print CategoryTheory.Abelian.Pseudoelement.pseudo_surjective_of_epi /-
/-- An epimorphism is surjective on pseudoelements. -/
theorem pseudo_surjective_of_epi {P Q : C} (f : P ⟶ Q) [Epi f] : Function.Surjective f :=
fun qbar =>
@@ -352,9 +433,11 @@ theorem pseudo_surjective_of_epi {P Q : C} (f : P ⟶ Q) [Epi f] : Function.Surj
⟨pullback f q.Hom, 𝟙 (pullback f q.Hom), pullback.snd, by infer_instance, by infer_instance,
by rw [category.id_comp, ← pullback.condition, app_hom, over.coe_hom]⟩⟩
#align category_theory.abelian.pseudoelement.pseudo_surjective_of_epi CategoryTheory.Abelian.Pseudoelement.pseudo_surjective_of_epi
+-/
end
+#print CategoryTheory.Abelian.Pseudoelement.epi_of_pseudo_surjective /-
/-- A morphism that is surjective on pseudoelements is an epimorphism. -/
theorem epi_of_pseudo_surjective {P Q : C} (f : P ⟶ Q) : Function.Surjective f → Epi f := fun h =>
match h (𝟙 Q) with
@@ -373,9 +456,11 @@ theorem epi_of_pseudo_surjective {P Q : C} (f : P ⟶ Q) : Function.Surjective f
rw [category.assoc, comm]
apply category.comp_id
#align category_theory.abelian.pseudoelement.epi_of_pseudo_surjective CategoryTheory.Abelian.Pseudoelement.epi_of_pseudo_surjective
+-/
section
+#print CategoryTheory.Abelian.Pseudoelement.pseudo_exact_of_exact /-
/-- Two morphisms in an exact sequence are exact on pseudoelements. -/
theorem pseudo_exact_of_exact {P Q R : C} {f : P ⟶ Q} {g : Q ⟶ R} (h : Exact f g) :
(∀ a, g (f a) = 0) ∧ ∀ b, g b = 0 → ∃ a, f a = b :=
@@ -384,7 +469,7 @@ theorem pseudo_exact_of_exact {P Q R : C} {f : P ⟶ Q} {g : Q ⟶ R} (h : Exact
exact zero_apply _ _, fun b' =>
Quotient.inductionOn b' fun b hb =>
by
- have hb' : b.Hom ≫ g = 0 := (pseudo_zero_iff _).1 hb
+ have hb' : b.Hom ≫ g = 0 := (pseudoZero_iff _).1 hb
-- By exactness, b factors through im f = ker g via some c
obtain ⟨c, hc⟩ := kernel_fork.is_limit.lift' (is_limit_image f g h) _ hb'
-- We compute the pullback of the map into the image and c.
@@ -409,15 +494,19 @@ theorem pseudo_exact_of_exact {P Q R : C} {f : P ⟶ Q} {g : Q ⟶ R} (h : Exact
congr
⟩
#align category_theory.abelian.pseudoelement.pseudo_exact_of_exact CategoryTheory.Abelian.Pseudoelement.pseudo_exact_of_exact
+-/
end
+#print CategoryTheory.Abelian.Pseudoelement.apply_eq_zero_of_comp_eq_zero /-
theorem apply_eq_zero_of_comp_eq_zero {P Q R : C} (f : Q ⟶ R) (a : P ⟶ Q) : a ≫ f = 0 → f a = 0 :=
fun h => by simp [over_coe_def, pseudo_apply_mk, over.coe_hom, h]
#align category_theory.abelian.pseudoelement.apply_eq_zero_of_comp_eq_zero CategoryTheory.Abelian.Pseudoelement.apply_eq_zero_of_comp_eq_zero
+-/
section
+#print CategoryTheory.Abelian.Pseudoelement.exact_of_pseudo_exact /-
/-- If two morphisms are exact on pseudoelements, they are exact. -/
theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
((∀ a, g (f a) = 0) ∧ ∀ b, g b = 0 → ∃ a, f a = b) → Exact f g := fun ⟨h₁, h₂⟩ =>
@@ -453,9 +542,11 @@ theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
rw [(iso.eq_inv_comp (as_iso j)).2 pullback.condition.symm]
simp only [category.assoc, kernel.condition, has_zero_morphisms.comp_zero]⟩
#align category_theory.abelian.pseudoelement.exact_of_pseudo_exact CategoryTheory.Abelian.Pseudoelement.exact_of_pseudo_exact
+-/
end
+#print CategoryTheory.Abelian.Pseudoelement.sub_of_eq_image /-
/-- If two pseudoelements `x` and `y` have the same image under some morphism `f`, then we can form
their "difference" `z`. This pseudoelement has the properties that `f z = 0` and for all
morphisms `g`, if `g y = 0` then `g z = g x`. -/
@@ -481,9 +572,11 @@ theorem sub_of_eq_image {P Q : C} (f : P ⟶ Q) (x y : P) :
change app g (a'' : over P) ≈ app g a
exact ⟨R, 𝟙 R, p, by infer_instance, ep, by simp [sub_eq_add_neg, this]⟩⟩⟩
#align category_theory.abelian.pseudoelement.sub_of_eq_image CategoryTheory.Abelian.Pseudoelement.sub_of_eq_image
+-/
variable [Limits.HasPullbacks C]
+#print CategoryTheory.Abelian.Pseudoelement.pseudo_pullback /-
/-- If `f : P ⟶ R` and `g : Q ⟶ R` are morphisms and `p : P` and `q : Q` are pseudoelements such
that `f p = g q`, then there is some `s : pullback f g` such that `fst s = p` and `snd s = q`.
@@ -505,14 +598,21 @@ theorem pseudo_pullback {P Q R : C} {f : P ⟶ R} {g : Q ⟶ R} {p : P} {q : Q}
⟨Quotient.sound ⟨Z, 𝟙 Z, a, by infer_instance, ea, by rwa [category.id_comp]⟩,
Quotient.sound ⟨Z, 𝟙 Z, b, by infer_instance, eb, by rwa [category.id_comp]⟩⟩⟩
#align category_theory.abelian.pseudoelement.pseudo_pullback CategoryTheory.Abelian.Pseudoelement.pseudo_pullback
+-/
section Module
attribute [-instance] hom_to_fun
+/- warning: category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal -> CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_4 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)} {x : CategoryTheory.Over.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G} {y : CategoryTheory.Over.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G}, (CategoryTheory.Abelian.PseudoEqual.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G x y) -> (Eq.{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_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (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_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)))) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.hom.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)) (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_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)))) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x)))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) x))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)))) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_4) (CategoryTheory.Functor.obj.{u2, u2, max u1 (succ u2), max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.left.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)) (CategoryTheory.Functor.obj.{u2, u2, u2, max u1 (succ u2)} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) (CategoryTheory.Comma.right.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Comma.hom.{u2, u2, u2, max u1 (succ u2), u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (CategoryTheory.Functor.id.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_4)) G) y)))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_4 : CommRing.{u2} R] {G : ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)} {x : CategoryTheory.Over.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G} {y : CategoryTheory.Over.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G}, (CategoryTheory.Abelian.PseudoEqual.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G x y) -> (Eq.{succ u1} (Submodule.{u2, u1} R (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (LinearMap.range.{u2, u2, u1, u1, u1} R R (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)))) (Quiver.Hom.{succ u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u2, u1} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) x)) (LinearMap.range.{u2, u2, u1, u1, u1} R R (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)))) (AddCommGroup.toAddCommMonoid.{u1} (ModuleCat.carrier.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.isAddCommGroup.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.isModule.{u1, u2} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4)))) (Quiver.Hom.{succ u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u2, u1} R (CommRing.toRing.{u2} R _inst_4) (Prefunctor.obj.{succ u1, succ u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 (succ u1), max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 (succ u1)} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y))) (RingHomSurjective.ids.{u2} R (Ring.toSemiring.{u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 (succ u1), u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (CategoryTheory.Functor.id.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4))) (CategoryTheory.Functor.fromPUnit.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) (ModuleCat.moduleCategory.{u1, u2} R (CommRing.toRing.{u2} R _inst_4)) G) y)))
+Case conversion may be inaccurate. Consider using '#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequalₓ'. -/
/-- In the category `Module R`, if `x` and `y` are pseudoequal, then the range of the associated
morphisms is the same. -/
-theorem Module.eq_range_of_pseudoequal {R : Type _} [CommRing R] {G : ModuleCat R} {x y : Over G}
+theorem ModuleCat.eq_range_of_pseudoequal {R : Type _} [CommRing R] {G : ModuleCat R} {x y : Over G}
(h : PseudoEqual G x y) : x.Hom.range = y.Hom.range :=
by
obtain ⟨P, p, q, hp, hq, H⟩ := h
@@ -527,7 +627,7 @@ theorem Module.eq_range_of_pseudoequal {R : Type _} [CommRing R] {G : ModuleCat
refine' ⟨p a'', _⟩
rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
ha'', ha']
-#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.Module.eq_range_of_pseudoequal
+#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal
end Module
mathlib commit https://github.com/leanprover-community/mathlib/commit/cd8fafa2fac98e1a67097e8a91ad9901cfde48af
@@ -419,7 +419,7 @@ theorem apply_eq_zero_of_comp_eq_zero {P Q R : C} (f : Q ⟶ R) (a : P ⟶ Q) :
section
/-- If two morphisms are exact on pseudoelements, they are exact. -/
-theorem exactOfPseudoExact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
+theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
((∀ a, g (f a) = 0) ∧ ∀ b, g b = 0 → ∃ a, f a = b) → Exact f g := fun ⟨h₁, h₂⟩ =>
(Abelian.exact_iff _ _).2
⟨zero_morphism_ext _ fun a => by rw [comp_apply, h₁ a],
@@ -452,7 +452,7 @@ theorem exactOfPseudoExact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
-- are done.
rw [(iso.eq_inv_comp (as_iso j)).2 pullback.condition.symm]
simp only [category.assoc, kernel.condition, has_zero_morphisms.comp_zero]⟩
-#align category_theory.abelian.pseudoelement.exact_of_pseudo_exact CategoryTheory.Abelian.Pseudoelement.exactOfPseudoExact
+#align category_theory.abelian.pseudoelement.exact_of_pseudo_exact CategoryTheory.Abelian.Pseudoelement.exact_of_pseudo_exact
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/17ad94b4953419f3e3ce3e77da3239c62d1d09f0
@@ -419,7 +419,7 @@ theorem apply_eq_zero_of_comp_eq_zero {P Q R : C} (f : Q ⟶ R) (a : P ⟶ Q) :
section
/-- If two morphisms are exact on pseudoelements, they are exact. -/
-theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
+theorem exactOfPseudoExact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
((∀ a, g (f a) = 0) ∧ ∀ b, g b = 0 → ∃ a, f a = b) → Exact f g := fun ⟨h₁, h₂⟩ =>
(Abelian.exact_iff _ _).2
⟨zero_morphism_ext _ fun a => by rw [comp_apply, h₁ a],
@@ -452,7 +452,7 @@ theorem exact_of_pseudo_exact {P Q R : C} (f : P ⟶ Q) (g : Q ⟶ R) :
-- are done.
rw [(iso.eq_inv_comp (as_iso j)).2 pullback.condition.symm]
simp only [category.assoc, kernel.condition, has_zero_morphisms.comp_zero]⟩
-#align category_theory.abelian.pseudoelement.exact_of_pseudo_exact CategoryTheory.Abelian.Pseudoelement.exact_of_pseudo_exact
+#align category_theory.abelian.pseudoelement.exact_of_pseudo_exact CategoryTheory.Abelian.Pseudoelement.exactOfPseudoExact
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -442,7 +442,7 @@ theorem sub_of_eq_image {P Q : C} (f : P ⟶ Q) (x y : P) :
⟨a'',
⟨show ⟦(a'' ≫ f : Over Q)⟧ = ⟦↑(0 : Q ⟶ Q)⟧ by
dsimp at comm
- simp [sub_eq_zero.2 comm],
+ simp [a'', sub_eq_zero.2 comm],
fun Z g hh => by
obtain ⟨X, p', q', ep', _, comm'⟩ := Quotient.exact hh
have : a'.hom ≫ g = 0 := by
@@ -451,7 +451,7 @@ theorem sub_of_eq_image {P Q : C} (f : P ⟶ Q) (x y : P) :
apply Quotient.sound
-- Can we prevent quotient.sound from giving us this weird `coe_b` thingy?
change app g (a'' : Over P) ≈ app g a
- exact ⟨R, 𝟙 R, p, inferInstance, ep, by simp [sub_eq_add_neg, this]⟩⟩⟩
+ exact ⟨R, 𝟙 R, p, inferInstance, ep, by simp [a'', sub_eq_add_neg, this]⟩⟩⟩
#align category_theory.abelian.pseudoelement.sub_of_eq_image CategoryTheory.Abelian.Pseudoelement.sub_of_eq_image
variable [Limits.HasPullbacks C]
@@ -5,7 +5,7 @@ Authors: Markus Himmel
-/
import Mathlib.Init.Align
import Mathlib.CategoryTheory.Abelian.Exact
-import Mathlib.CategoryTheory.Over
+import Mathlib.CategoryTheory.Comma.Over
import Mathlib.Algebra.Category.ModuleCat.EpiMono
#align_import category_theory.abelian.pseudoelements from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
@@ -484,12 +484,14 @@ theorem ModuleCat.eq_range_of_pseudoequal {R : Type*} [CommRing R] {G : ModuleCa
· obtain ⟨a', ha'⟩ := ha
obtain ⟨a'', ha''⟩ := (ModuleCat.epi_iff_surjective p).1 hp a'
refine' ⟨q a'', _⟩
- rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, ← H, ModuleCat.comp_def, LinearMap.comp_apply,
- ha'', ha']
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [← LinearMap.comp_apply, ← ModuleCat.comp_def, ← H,
+ ModuleCat.comp_def, LinearMap.comp_apply, ha'', ha']
· obtain ⟨a', ha'⟩ := ha
obtain ⟨a'', ha''⟩ := (ModuleCat.epi_iff_surjective q).1 hq a'
refine' ⟨p a'', _⟩
- rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
ha'', ha']
set_option linter.uppercaseLean3 false in
#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal
@@ -484,14 +484,12 @@ theorem ModuleCat.eq_range_of_pseudoequal {R : Type*} [CommRing R] {G : ModuleCa
· obtain ⟨a', ha'⟩ := ha
obtain ⟨a'', ha''⟩ := (ModuleCat.epi_iff_surjective p).1 hp a'
refine' ⟨q a'', _⟩
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [← LinearMap.comp_apply, ← ModuleCat.comp_def, ← H,
- ModuleCat.comp_def, LinearMap.comp_apply, ha'', ha']
+ rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, ← H, ModuleCat.comp_def, LinearMap.comp_apply,
+ ha'', ha']
· obtain ⟨a', ha'⟩ := ha
obtain ⟨a'', ha''⟩ := (ModuleCat.epi_iff_surjective q).1 hq a'
refine' ⟨p a'', _⟩
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
+ rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
ha'', ha']
set_option linter.uppercaseLean3 false in
#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal
@@ -484,12 +484,14 @@ theorem ModuleCat.eq_range_of_pseudoequal {R : Type*} [CommRing R] {G : ModuleCa
· obtain ⟨a', ha'⟩ := ha
obtain ⟨a'', ha''⟩ := (ModuleCat.epi_iff_surjective p).1 hp a'
refine' ⟨q a'', _⟩
- rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, ← H, ModuleCat.comp_def, LinearMap.comp_apply,
- ha'', ha']
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [← LinearMap.comp_apply, ← ModuleCat.comp_def, ← H,
+ ModuleCat.comp_def, LinearMap.comp_apply, ha'', ha']
· obtain ⟨a', ha'⟩ := ha
obtain ⟨a'', ha''⟩ := (ModuleCat.epi_iff_surjective q).1 hq a'
refine' ⟨p a'', _⟩
- rw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [← LinearMap.comp_apply, ← ModuleCat.comp_def, H, ModuleCat.comp_def, LinearMap.comp_apply,
ha'', ha']
set_option linter.uppercaseLean3 false in
#align category_theory.abelian.pseudoelement.Module.eq_range_of_pseudoequal CategoryTheory.Abelian.Pseudoelement.ModuleCat.eq_range_of_pseudoequal
@@ -460,7 +460,7 @@ variable [Limits.HasPullbacks C]
that `f p = g q`, then there is some `s : pullback f g` such that `fst s = p` and `snd s = q`.
Remark: Borceux claims that `s` is unique, but this is false. See
- `Counterexamples/Pseudoelement` for details. -/
+ `Counterexamples/Pseudoelement.lean` for details. -/
theorem pseudo_pullback {P Q R : C} {f : P ⟶ R} {g : Q ⟶ R} {p : P} {q : Q} :
f p = g q →
∃ s, (pullback.fst : pullback f g ⟶ P) s = p ∧ (pullback.snd : pullback f g ⟶ Q) s = q :=
As noted on Zulip, a from-scratch build of mathlib after lake exe cache get
will compile all of Std
due to some unnecessary imports. With a few well chosen import reductions we only end up having to compile ~20 files instead of ~300 files (compile meaning Compiling
, generating the arch-dependent .o
files that are not in the cache).
@@ -3,6 +3,7 @@ Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-/
+import Mathlib.Init.Align
import Mathlib.CategoryTheory.Abelian.Exact
import Mathlib.CategoryTheory.Over
import Mathlib.Algebra.Category.ModuleCat.EpiMono
c
vs C
)ounterexamples
(#6691)
This PR just touches doc-strings. It fixes capitalization issues involving Counterexamples
and adds a missing line-break for better display.
@@ -459,7 +459,7 @@ variable [Limits.HasPullbacks C]
that `f p = g q`, then there is some `s : pullback f g` such that `fst s = p` and `snd s = q`.
Remark: Borceux claims that `s` is unique, but this is false. See
- `counterexamples/pseudoelement` for details. -/
+ `Counterexamples/Pseudoelement` for details. -/
theorem pseudo_pullback {P Q R : C} {f : P ⟶ R} {g : Q ⟶ R} {p : P} {q : Q} :
f p = g q →
∃ s, (pullback.fst : pullback f g ⟶ P) s = p ∧ (pullback.snd : pullback f g ⟶ Q) s = q :=
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -476,7 +476,7 @@ section Module
/-- In the category `Module R`, if `x` and `y` are pseudoequal, then the range of the associated
morphisms is the same. -/
-theorem ModuleCat.eq_range_of_pseudoequal {R : Type _} [CommRing R] {G : ModuleCat R} {x y : Over G}
+theorem ModuleCat.eq_range_of_pseudoequal {R : Type*} [CommRing R] {G : ModuleCat R} {x y : Over G}
(h : PseudoEqual G x y) : LinearMap.range x.hom = LinearMap.range y.hom := by
obtain ⟨P, p, q, hp, hq, H⟩ := h
refine' Submodule.ext fun a => ⟨fun ha => _, fun ha => _⟩
@@ -234,7 +234,7 @@ def pseudoZero {P : C} : P :=
#align category_theory.abelian.pseudoelement.pseudo_zero CategoryTheory.Abelian.Pseudoelement.pseudoZero
-- Porting note: in mathlib3, we couldn't make this an instance
--- as it would have fired on on `coe_sort`.
+-- as it would have fired on `coe_sort`.
-- However now that coercions are treated differently, this is a structural instance triggered by
-- the appearance of `Pseudoelement`.
instance hasZero {P : C} : Zero P :=
@@ -2,16 +2,13 @@
Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module category_theory.abelian.pseudoelements
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Abelian.Exact
import Mathlib.CategoryTheory.Over
import Mathlib.Algebra.Category.ModuleCat.EpiMono
+#align_import category_theory.abelian.pseudoelements from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
# Pseudoelements in abelian categories
The unported dependencies are