algebra.direct_sum.ring
⟷
Mathlib.Algebra.DirectSum.Ring
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
@@ -287,8 +287,8 @@ theorem ofPow {i} (a : A i) (n : ℕ) :
by
induction' n with n
· exact of_eq_of_graded_monoid_eq (pow_zero <| GradedMonoid.mk _ a).symm
- · rw [pow_succ, n_ih, of_mul_of]
- exact of_eq_of_graded_monoid_eq (pow_succ (GradedMonoid.mk _ a) n).symm
+ · rw [pow_succ', n_ih, of_mul_of]
+ exact of_eq_of_graded_monoid_eq (pow_succ' (GradedMonoid.mk _ a) n).symm
#align direct_sum.of_pow DirectSum.ofPow
-/
@@ -486,7 +486,7 @@ variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
@[simp]
theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
| 0 => by rw [pow_zero, pow_zero, DirectSum.of_zero_one]
- | n + 1 => by rw [pow_succ, pow_succ, of_zero_mul, of_zero_pow]
+ | n + 1 => by rw [pow_succ', pow_succ', of_zero_mul, of_zero_pow]
#align direct_sum.of_zero_pow DirectSum.of_zero_pow
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -493,18 +493,19 @@ theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
instance : NatCast (A 0) :=
⟨GSemiring.natCast⟩
-#print DirectSum.ofNatCast /-
+#print DirectSum.of_natCast /-
@[simp]
-theorem ofNatCast (n : ℕ) : of A 0 n = n :=
+theorem of_natCast (n : ℕ) : of A 0 n = n :=
rfl
-#align direct_sum.of_nat_cast DirectSum.ofNatCast
+#align direct_sum.of_nat_cast DirectSum.of_natCast
-/
#print DirectSum.GradeZero.semiring /-
/-- The `semiring` structure derived from `gsemiring A`. -/
instance GradeZero.semiring : Semiring (A 0) :=
Function.Injective.semiring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
- (of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun x n => of_zero_pow _ _ _) (ofNatCast A)
+ (of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun x n => of_zero_pow _ _ _)
+ (of_natCast A)
#align direct_sum.grade_zero.semiring DirectSum.GradeZero.semiring
-/
@@ -538,7 +539,7 @@ variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
instance GradeZero.commSemiring : CommSemiring (A 0) :=
Function.Injective.commSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
(of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => DFinsupp.single_smul n x)
- (fun x n => of_zero_pow _ _ _) (ofNatCast A)
+ (fun x n => of_zero_pow _ _ _) (of_natCast A)
#align direct_sum.grade_zero.comm_semiring DirectSum.GradeZero.commSemiring
-/
@@ -571,11 +572,11 @@ variable [∀ i, AddCommGroup (A i)] [AddMonoid ι] [GRing A]
instance : IntCast (A 0) :=
⟨GRing.intCast⟩
-#print DirectSum.ofIntCast /-
+#print DirectSum.of_intCast /-
@[simp]
-theorem ofIntCast (n : ℤ) : of A 0 n = n :=
+theorem of_intCast (n : ℤ) : of A 0 n = n :=
rfl
-#align direct_sum.of_int_cast DirectSum.ofIntCast
+#align direct_sum.of_int_cast DirectSum.of_intCast
-/
#print DirectSum.GradeZero.ring /-
@@ -589,7 +590,7 @@ instance GradeZero.ring : Ring (A 0) :=
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
DFinsupp.single_smul n x)
- (fun x n => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
+ (fun x n => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
#align direct_sum.grade_zero.ring DirectSum.GradeZero.ring
-/
@@ -610,7 +611,7 @@ instance GradeZero.commRing : CommRing (A 0) :=
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
DFinsupp.single_smul n x)
- (fun x n => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
+ (fun x n => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
#align direct_sum.grade_zero.comm_ring DirectSum.GradeZero.commRing
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-/
-import Mathbin.Algebra.GradedMonoid
-import Mathbin.Algebra.DirectSum.Basic
+import Algebra.GradedMonoid
+import Algebra.DirectSum.Basic
#align_import algebra.direct_sum.ring from "leanprover-community/mathlib"@"50251fd6309cca5ca2e747882ffecd2729f38c5d"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.direct_sum.ring
-! leanprover-community/mathlib commit 50251fd6309cca5ca2e747882ffecd2729f38c5d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.GradedMonoid
import Mathbin.Algebra.DirectSum.Basic
+#align_import algebra.direct_sum.ring from "leanprover-community/mathlib"@"50251fd6309cca5ca2e747882ffecd2729f38c5d"
+
/-!
# Additively-graded multiplicative structures on `⨁ i, A i`
mathlib commit https://github.com/leanprover-community/mathlib/commit/4e24c4bfcff371c71f7ba22050308aa17815626c
@@ -149,7 +149,7 @@ end Defs
theorem of_eq_of_gradedMonoid_eq {A : ι → Type _} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
{b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
DirectSum.of A i a = DirectSum.of A j b :=
- Dfinsupp.single_eq_of_sigma_eq h
+ DFinsupp.single_eq_of_sigma_eq h
#align direct_sum.of_eq_of_graded_monoid_eq DirectSum.of_eq_of_gradedMonoid_eq
-/
@@ -321,7 +321,7 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
a * a' = a.Sum fun i ai => a'.Sum fun j aj => DirectSum.of _ _ <| GradedMonoid.GMul.mul ai aj :=
by
change MulHom _ a a' = _
- simpa only [MulHom, to_add_monoid, Dfinsupp.liftAddHom_apply, Dfinsupp.sumAddHom_apply,
+ simpa only [MulHom, to_add_monoid, DFinsupp.liftAddHom_apply, DFinsupp.sumAddHom_apply,
AddMonoidHom.dfinsupp_sum_apply, flip_apply, AddMonoidHom.dfinsupp_sumAddHom_apply]
#align direct_sum.mul_eq_dfinsupp_sum DirectSum.mul_eq_dfinsupp_sum
-/
@@ -331,9 +331,9 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
/-- A heavily unfolded version of the definition of multiplication -/
theorem mul_eq_sum_support_ghas_mul [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
a * a' =
- ∑ ij in Dfinsupp.support a ×ˢ Dfinsupp.support a',
+ ∑ ij in DFinsupp.support a ×ˢ DFinsupp.support a',
DirectSum.of _ _ (GradedMonoid.GMul.mul (a ij.fst) (a' ij.snd)) :=
- by simp only [mul_eq_dfinsupp_sum, Dfinsupp.sum, Finset.sum_product]
+ by simp only [mul_eq_dfinsupp_sum, DFinsupp.sum, Finset.sum_product]
#align direct_sum.mul_eq_sum_support_ghas_mul DirectSum.mul_eq_sum_support_ghas_mul
-/
@@ -466,8 +466,8 @@ theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b :=
#print DirectSum.GradeZero.nonUnitalNonAssocSemiring /-
instance GradeZero.nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (A 0) :=
- Function.Injective.nonUnitalNonAssocSemiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero
- (of A 0).map_add (of_zero_mul A) fun x n => Dfinsupp.single_smul n x
+ Function.Injective.nonUnitalNonAssocSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
+ (of A 0).map_add (of_zero_mul A) fun x n => DFinsupp.single_smul n x
#align direct_sum.grade_zero.non_unital_non_assoc_semiring DirectSum.GradeZero.nonUnitalNonAssocSemiring
-/
@@ -506,7 +506,7 @@ theorem ofNatCast (n : ℕ) : of A 0 n = n :=
#print DirectSum.GradeZero.semiring /-
/-- The `semiring` structure derived from `gsemiring A`. -/
instance GradeZero.semiring : Semiring (A 0) :=
- Function.Injective.semiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
+ Function.Injective.semiring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
(of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun x n => of_zero_pow _ _ _) (ofNatCast A)
#align direct_sum.grade_zero.semiring DirectSum.GradeZero.semiring
-/
@@ -539,8 +539,8 @@ variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
#print DirectSum.GradeZero.commSemiring /-
/-- The `comm_semiring` structure derived from `gcomm_semiring A`. -/
instance GradeZero.commSemiring : CommSemiring (A 0) :=
- Function.Injective.commSemiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero
- (of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => Dfinsupp.single_smul n x)
+ Function.Injective.commSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
+ (of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => DFinsupp.single_smul n x)
(fun x n => of_zero_pow _ _ _) (ofNatCast A)
#align direct_sum.grade_zero.comm_semiring DirectSum.GradeZero.commSemiring
-/
@@ -554,14 +554,14 @@ variable [∀ i, AddCommGroup (A i)] [AddZeroClass ι] [GNonUnitalNonAssocSemiri
#print DirectSum.GradeZero.nonUnitalNonAssocRing /-
/-- The `non_unital_non_assoc_ring` derived from `gnon_unital_non_assoc_semiring A`. -/
instance GradeZero.nonUnitalNonAssocRing : NonUnitalNonAssocRing (A 0) :=
- Function.Injective.nonUnitalNonAssocRing (of A 0) Dfinsupp.single_injective (of A 0).map_zero
+ Function.Injective.nonUnitalNonAssocRing (of A 0) DFinsupp.single_injective (of A 0).map_zero
(of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
(fun x n =>
letI : ∀ i, DistribMulAction ℕ (A i) := fun i => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
- Dfinsupp.single_smul n x
+ DFinsupp.single_smul n x
#align direct_sum.grade_zero.non_unital_non_assoc_ring DirectSum.GradeZero.nonUnitalNonAssocRing
-/
@@ -584,14 +584,14 @@ theorem ofIntCast (n : ℤ) : of A 0 n = n :=
#print DirectSum.GradeZero.ring /-
/-- The `ring` derived from `gsemiring A`. -/
instance GradeZero.ring : Ring (A 0) :=
- Function.Injective.ring (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
+ Function.Injective.ring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
(of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
(fun x n =>
letI : ∀ i, DistribMulAction ℕ (A i) := fun i => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun x n => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
#align direct_sum.grade_zero.ring DirectSum.GradeZero.ring
-/
@@ -605,14 +605,14 @@ variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GCommRing A]
#print DirectSum.GradeZero.commRing /-
/-- The `comm_ring` derived from `gcomm_semiring A`. -/
instance GradeZero.commRing : CommRing (A 0) :=
- Function.Injective.commRing (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
+ Function.Injective.commRing (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
(of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
(fun x n =>
letI : ∀ i, DistribMulAction ℕ (A i) := fun i => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun x n => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
#align direct_sum.grade_zero.comm_ring DirectSum.GradeZero.commRing
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -262,7 +262,7 @@ private theorem mul_assoc (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
A).flip.compHom.comp
(mulHom A)).flip
from AddMonoidHom.congr_fun (AddMonoidHom.congr_fun (AddMonoidHom.congr_fun this a) b) c
- ext (ai ax bi bx ci cx) : 6
+ ext ai ax bi bx ci cx : 6
dsimp only [coe_comp, Function.comp_apply, comp_hom_apply_apply, flip_apply, flip_hom_apply]
rw [mul_hom_of_of, mul_hom_of_of, mul_hom_of_of, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (mul_assoc (GradedMonoid.mk ai ax) ⟨bi, bx⟩ ⟨ci, cx⟩)
@@ -666,7 +666,7 @@ def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
exact hone
map_mul' := by
rw [(to_add_monoid f).map_mul_iff]
- ext (xi xv yi yv) : 4
+ ext xi xv yi yv : 4
show
to_add_monoid f (of A xi xv * of A yi yv) =
to_add_monoid f (of A xi xv) * to_add_monoid f (of A yi yv)
@@ -713,11 +713,11 @@ def liftRingHom :
simp only [AddMonoidHom.comp_apply, RingHom.coe_addMonoidHom]
rw [← F.map_mul, of_mul_of]⟩
left_inv f := by
- ext (xi xv)
+ ext xi xv
exact to_add_monoid_of (fun _ => f.1) xi xv
right_inv F := by
apply RingHom.coe_addMonoidHom_injective
- ext (xi xv)
+ ext xi xv
simp only [RingHom.coe_addMonoidHom_mk, DirectSum.toAddMonoid_of, AddMonoidHom.mk_coe,
AddMonoidHom.comp_apply, to_semiring_coe_add_monoid_hom]
#align direct_sum.lift_ring_hom DirectSum.liftRingHom
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -94,6 +94,7 @@ section Defs
variable (A : ι → Type _)
+#print DirectSum.GNonUnitalNonAssocSemiring /-
/-- A graded version of `non_unital_non_assoc_semiring`. -/
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
GradedMonoid.GMul A where
@@ -102,6 +103,7 @@ class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
#align direct_sum.gnon_unital_non_assoc_semiring DirectSum.GNonUnitalNonAssocSemiring
+-/
end Defs
@@ -109,6 +111,7 @@ section Defs
variable (A : ι → Type _)
+#print DirectSum.GSemiring /-
/-- A graded version of `semiring`. -/
class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
GradedMonoid.GMonoid A where
@@ -116,30 +119,39 @@ class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNo
natCast_zero : nat_cast 0 = 0
natCast_succ : ∀ n : ℕ, nat_cast (n + 1) = nat_cast n + GradedMonoid.GOne.one
#align direct_sum.gsemiring DirectSum.GSemiring
+-/
+#print DirectSum.GCommSemiring /-
/-- A graded version of `comm_semiring`. -/
class GCommSemiring [AddCommMonoid ι] [∀ i, AddCommMonoid (A i)] extends GSemiring A,
GradedMonoid.GCommMonoid A
#align direct_sum.gcomm_semiring DirectSum.GCommSemiring
+-/
+#print DirectSum.GRing /-
/-- A graded version of `ring`. -/
class GRing [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends GSemiring A where
intCast : ℤ → A 0
intCast_ofNat : ∀ n : ℕ, int_cast n = nat_cast n
intCast_negSucc : ∀ n : ℕ, int_cast (-(n + 1 : ℕ)) = -nat_cast (n + 1 : ℕ)
#align direct_sum.gring DirectSum.GRing
+-/
+#print DirectSum.GCommRing /-
/-- A graded version of `comm_ring`. -/
class GCommRing [AddCommMonoid ι] [∀ i, AddCommGroup (A i)] extends GRing A, GCommSemiring A
#align direct_sum.gcomm_ring DirectSum.GCommRing
+-/
end Defs
+#print DirectSum.of_eq_of_gradedMonoid_eq /-
theorem of_eq_of_gradedMonoid_eq {A : ι → Type _} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
{b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
DirectSum.of A i a = DirectSum.of A j b :=
Dfinsupp.single_eq_of_sigma_eq h
#align direct_sum.of_eq_of_graded_monoid_eq DirectSum.of_eq_of_gradedMonoid_eq
+-/
variable (A : ι → Type _)
@@ -160,6 +172,7 @@ variable [Add ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
open AddMonoidHom (flip_apply coe_comp compHom_apply_apply)
+#print DirectSum.gMulHom /-
/-- The piecewise multiplication from the `has_mul` instance, as a bundled homomorphism. -/
@[simps]
def gMulHom {i j} : A i →+ A j →+ A (i + j)
@@ -171,6 +184,7 @@ def gMulHom {i j} : A i →+ A j →+ A (i + j)
map_zero' := AddMonoidHom.ext fun a => GNonUnitalNonAssocSemiring.zero_mul a
map_add' a₁ a₂ := AddMonoidHom.ext fun b => GNonUnitalNonAssocSemiring.add_mul _ _ _
#align direct_sum.gmul_hom DirectSum.gMulHom
+-/
#print DirectSum.mulHom /-
/-- The multiplication from the `has_mul` instance, as a bundled homomorphism. -/
@@ -194,6 +208,7 @@ instance : NonUnitalNonAssocSemiring (⨁ i, A i) :=
variable {A}
+#print DirectSum.mulHom_of_of /-
theorem mulHom_of_of {i j} (a : A i) (b : A j) :
mulHom A (of _ i a) (of _ j b) = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
by
@@ -201,11 +216,14 @@ theorem mulHom_of_of {i j} (a : A i) (b : A j) :
rw [to_add_monoid_of, flip_apply, to_add_monoid_of, flip_apply, coe_comp, Function.comp_apply,
comp_hom_apply_apply, coe_comp, Function.comp_apply, gmul_hom_apply_apply]
#align direct_sum.mul_hom_of_of DirectSum.mulHom_of_of
+-/
+#print DirectSum.of_mul_of /-
theorem of_mul_of {i j} (a : A i) (b : A j) :
of _ i a * of _ j b = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
mulHom_of_of a b
#align direct_sum.of_mul_of DirectSum.of_mul_of
+-/
end Mul
@@ -266,6 +284,7 @@ instance semiring : Semiring (⨁ i, A i) :=
#align direct_sum.semiring DirectSum.semiring
-/
+#print DirectSum.ofPow /-
theorem ofPow {i} (a : A i) (n : ℕ) :
of _ i a ^ n = of _ (n • i) (GradedMonoid.GMonoid.gnpow _ a) :=
by
@@ -274,7 +293,9 @@ theorem ofPow {i} (a : A i) (n : ℕ) :
· rw [pow_succ, n_ih, of_mul_of]
exact of_eq_of_graded_monoid_eq (pow_succ (GradedMonoid.mk _ a) n).symm
#align direct_sum.of_pow DirectSum.ofPow
+-/
+#print DirectSum.ofList_dProd /-
theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)) :
of A _ (l.dProd fι fA) = (l.map fun a => of A (fι a) (fA a)).Prod :=
by
@@ -284,11 +305,14 @@ theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)
· simp only [List.map_cons, List.prod_cons, List.dProd_cons, ← l_ih, DirectSum.of_mul_of]
rfl
#align direct_sum.of_list_dprod DirectSum.ofList_dProd
+-/
+#print DirectSum.list_prod_ofFn_of_eq_dProd /-
theorem list_prod_ofFn_of_eq_dProd (n : ℕ) (fι : Fin n → ι) (fA : ∀ a, A (fι a)) :
(List.ofFn fun a => of A (fι a) (fA a)).Prod = of A _ ((List.finRange n).dProd fι fA) := by
rw [List.ofFn_eq_map, of_list_dprod]
#align direct_sum.list_prod_of_fn_of_eq_dprod DirectSum.list_prod_ofFn_of_eq_dProd
+-/
open scoped BigOperators
@@ -413,10 +437,12 @@ section One
variable [Zero ι] [GradedMonoid.GOne A] [∀ i, AddCommMonoid (A i)]
+#print DirectSum.of_zero_one /-
@[simp]
theorem of_zero_one : of _ 0 (1 : A 0) = 1 :=
rfl
#align direct_sum.of_zero_one DirectSum.of_zero_one
+-/
end One
@@ -424,15 +450,19 @@ section Mul
variable [AddZeroClass ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
+#print DirectSum.of_zero_smul /-
@[simp]
theorem of_zero_smul {i} (a : A 0) (b : A i) : of _ _ (a • b) = of _ _ a * of _ _ b :=
(of_eq_of_gradedMonoid_eq (GradedMonoid.mk_zero_smul a b)).trans (of_mul_of _ _).symm
#align direct_sum.of_zero_smul DirectSum.of_zero_smul
+-/
+#print DirectSum.of_zero_mul /-
@[simp]
theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b :=
of_zero_smul A a b
#align direct_sum.of_zero_mul DirectSum.of_zero_mul
+-/
#print DirectSum.GradeZero.nonUnitalNonAssocSemiring /-
instance GradeZero.nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (A 0) :=
@@ -455,19 +485,23 @@ section Semiring
variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
+#print DirectSum.of_zero_pow /-
@[simp]
theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
| 0 => by rw [pow_zero, pow_zero, DirectSum.of_zero_one]
| n + 1 => by rw [pow_succ, pow_succ, of_zero_mul, of_zero_pow]
#align direct_sum.of_zero_pow DirectSum.of_zero_pow
+-/
instance : NatCast (A 0) :=
⟨GSemiring.natCast⟩
+#print DirectSum.ofNatCast /-
@[simp]
theorem ofNatCast (n : ℕ) : of A 0 n = n :=
rfl
#align direct_sum.of_nat_cast DirectSum.ofNatCast
+-/
#print DirectSum.GradeZero.semiring /-
/-- The `semiring` structure derived from `gsemiring A`. -/
@@ -540,10 +574,12 @@ variable [∀ i, AddCommGroup (A i)] [AddMonoid ι] [GRing A]
instance : IntCast (A 0) :=
⟨GRing.intCast⟩
+#print DirectSum.ofIntCast /-
@[simp]
theorem ofIntCast (n : ℤ) : of A 0 n = n :=
rfl
#align direct_sum.of_int_cast DirectSum.ofIntCast
+-/
#print DirectSum.GradeZero.ring /-
/-- The `ring` derived from `gsemiring A`. -/
@@ -591,6 +627,7 @@ variable {R : Type _} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
variable {A}
+#print DirectSum.ringHom_ext' /-
/-- If two ring homomorphisms from `⨁ i, A i` are equal on each `of A i y`,
then they are equal.
@@ -600,11 +637,14 @@ theorem ringHom_ext' ⦃F G : (⨁ i, A i) →+* R⦄
(h : ∀ i, (↑F : _ →+ R).comp (of A i) = (↑G : _ →+ R).comp (of A i)) : F = G :=
RingHom.coe_addMonoidHom_injective <| DirectSum.addHom_ext' h
#align direct_sum.ring_hom_ext' DirectSum.ringHom_ext'
+-/
+#print DirectSum.ringHom_ext /-
/-- Two `ring_hom`s out of a direct sum are equal if they agree on the generators. -/
theorem ringHom_ext ⦃f g : (⨁ i, A i) →+* R⦄ (h : ∀ i x, f (of A i x) = g (of A i x)) : f = g :=
ringHom_ext' fun i => AddMonoidHom.ext <| h i
#align direct_sum.ring_hom_ext DirectSum.ringHom_ext
+-/
#print DirectSum.toSemiring /-
/-- A family of `add_monoid_hom`s preserving `direct_sum.ghas_one.one` and `direct_sum.ghas_mul.mul`
@@ -635,17 +675,21 @@ def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
#align direct_sum.to_semiring DirectSum.toSemiring
-/
+#print DirectSum.toSemiring_of /-
@[simp]
theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
toSemiring f hone hmul (of _ i x) = f _ x :=
toAddMonoid_of f i x
#align direct_sum.to_semiring_of DirectSum.toSemiring_of
+-/
+#print DirectSum.toSemiring_coe_addMonoidHom /-
@[simp]
theorem toSemiring_coe_addMonoidHom (f : ∀ i, A i →+ R) (hone hmul) :
(toSemiring f hone hmul : (⨁ i, A i) →+ R) = toAddMonoid f :=
rfl
#align direct_sum.to_semiring_coe_add_monoid_hom DirectSum.toSemiring_coe_addMonoidHom
+-/
#print DirectSum.liftRingHom /-
/-- Families of `add_monoid_hom`s preserving `direct_sum.ghas_one.one` and `direct_sum.ghas_mul.mul`
@@ -690,6 +734,7 @@ section Uniform
variable (ι)
+#print NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring /-
/-- A direct sum of copies of a `semiring` inherits the multiplication structure. -/
instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type _} [AddMonoid ι]
[NonUnitalNonAssocSemiring R] : DirectSum.GNonUnitalNonAssocSemiring fun i : ι => R :=
@@ -699,7 +744,9 @@ instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type
mul_add := fun i j => mul_add
add_mul := fun i j => add_mul }
#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring
+-/
+#print Semiring.directSumGSemiring /-
/-- A direct sum of copies of a `semiring` inherits the multiplication structure. -/
instance Semiring.directSumGSemiring {R : Type _} [AddMonoid ι] [Semiring R] :
DirectSum.GSemiring fun i : ι => R :=
@@ -709,6 +756,7 @@ instance Semiring.directSumGSemiring {R : Type _} [AddMonoid ι] [Semiring R] :
natCast_zero := Nat.cast_zero
natCast_succ := Nat.cast_succ }
#align semiring.direct_sum_gsemiring Semiring.directSumGSemiring
+-/
open scoped DirectSum
@@ -717,12 +765,14 @@ example {R : Type _} [AddMonoid ι] [Semiring R] (i j : ι) (a b : R) :
(DirectSum.of _ i a * DirectSum.of _ j b : ⨁ i, R) = DirectSum.of _ (i + j) (a * b) := by
rw [DirectSum.of_mul_of, Mul.gMul_mul]
+#print CommSemiring.directSumGCommSemiring /-
/-- A direct sum of copies of a `comm_semiring` inherits the commutative multiplication structure.
-/
instance CommSemiring.directSumGCommSemiring {R : Type _} [AddCommMonoid ι] [CommSemiring R] :
DirectSum.GCommSemiring fun i : ι => R :=
{ CommMonoid.gCommMonoid ι, Semiring.directSumGSemiring ι with }
#align comm_semiring.direct_sum_gcomm_semiring CommSemiring.directSumGCommSemiring
+-/
end Uniform
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -96,7 +96,7 @@ variable (A : ι → Type _)
/-- A graded version of `non_unital_non_assoc_semiring`. -/
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
- GradedMonoid.GMul A where
+ GradedMonoid.GMul A where
mul_zero : ∀ {i j} (a : A i), mul a (0 : A j) = 0
zero_mul : ∀ {i j} (b : A j), mul (0 : A i) b = 0
mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
@@ -111,7 +111,7 @@ variable (A : ι → Type _)
/-- A graded version of `semiring`. -/
class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
- GradedMonoid.GMonoid A where
+ GradedMonoid.GMonoid A where
natCast : ℕ → A 0
natCast_zero : nat_cast 0 = 0
natCast_succ : ∀ n : ℕ, nat_cast (n + 1) = nat_cast n + GradedMonoid.GOne.one
@@ -119,7 +119,7 @@ class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNo
/-- A graded version of `comm_semiring`. -/
class GCommSemiring [AddCommMonoid ι] [∀ i, AddCommMonoid (A i)] extends GSemiring A,
- GradedMonoid.GCommMonoid A
+ GradedMonoid.GCommMonoid A
#align direct_sum.gcomm_semiring DirectSum.GCommSemiring
/-- A graded version of `ring`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -215,34 +215,23 @@ variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
open AddMonoidHom (flipHom coe_comp compHom_apply_apply flip_apply flipHom_apply)
-/- warning: direct_sum.one_mul clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align direct_sum.one_mul [anonymous]ₓ'. -/
-#print [anonymous] /-
-private theorem [anonymous] (x : ⨁ i, A i) : 1 * x = x :=
+private theorem one_mul (x : ⨁ i, A i) : 1 * x = x :=
by
suffices mulHom A 1 = AddMonoidHom.id (⨁ i, A i) from AddMonoidHom.congr_fun this x
apply add_hom_ext; intro i xi
unfold One.one
rw [mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (one_mul <| GradedMonoid.mk i xi)
--/
-/- warning: direct_sum.mul_one clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align direct_sum.mul_one [anonymous]ₓ'. -/
-#print [anonymous] /-
-private theorem [anonymous] (x : ⨁ i, A i) : x * 1 = x :=
+private theorem mul_one (x : ⨁ i, A i) : x * 1 = x :=
by
suffices (mulHom A).flip 1 = AddMonoidHom.id (⨁ i, A i) from AddMonoidHom.congr_fun this x
apply add_hom_ext; intro i xi
unfold One.one
rw [flip_apply, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (mul_one <| GradedMonoid.mk i xi)
--/
-/- warning: direct_sum.mul_assoc clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align direct_sum.mul_assoc [anonymous]ₓ'. -/
-#print [anonymous] /-
-private theorem [anonymous] (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
+private theorem mul_assoc (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
by
suffices
(-- `λ a b c, a * b * c` as a bundled hom
@@ -259,7 +248,6 @@ private theorem [anonymous] (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
dsimp only [coe_comp, Function.comp_apply, comp_hom_apply_apply, flip_apply, flip_hom_apply]
rw [mul_hom_of_of, mul_hom_of_of, mul_hom_of_of, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (mul_assoc (GradedMonoid.mk ai ax) ⟨bi, bx⟩ ⟨ci, cx⟩)
--/
#print DirectSum.semiring /-
/-- The `semiring` structure derived from `gsemiring A`. -/
@@ -331,16 +319,12 @@ section CommSemiring
variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
-/- warning: direct_sum.mul_comm clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align direct_sum.mul_comm [anonymous]ₓ'. -/
-#print [anonymous] /-
-private theorem [anonymous] (a b : ⨁ i, A i) : a * b = b * a :=
+private theorem mul_comm (a b : ⨁ i, A i) : a * b = b * a :=
by
suffices mulHom A = (mulHom A).flip from AddMonoidHom.congr_fun (AddMonoidHom.congr_fun this a) b
apply add_hom_ext; intro ai ax; apply add_hom_ext; intro bi bx
rw [AddMonoidHom.flip_apply, mul_hom_of_of, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (gcomm_semiring.mul_comm ⟨ai, ax⟩ ⟨bi, bx⟩)
--/
#print DirectSum.commSemiring /-
/-- The `comm_semiring` structure derived from `gcomm_semiring A`. -/
@@ -678,11 +662,11 @@ def liftRingHom :
invFun F :=
⟨fun i => (F : (⨁ i, A i) →+ R).comp (of _ i),
by
- simp only [AddMonoidHom.comp_apply, [anonymous]]
+ simp only [AddMonoidHom.comp_apply, RingHom.coe_addMonoidHom]
rw [← F.map_one]
rfl, fun i j ai aj =>
by
- simp only [AddMonoidHom.comp_apply, [anonymous]]
+ simp only [AddMonoidHom.comp_apply, RingHom.coe_addMonoidHom]
rw [← F.map_mul, of_mul_of]⟩
left_inv f := by
ext (xi xv)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -85,7 +85,7 @@ variable {ι : Type _} [DecidableEq ι]
namespace DirectSum
-open DirectSum
+open scoped DirectSum
/-! ### Typeclasses -/
@@ -302,7 +302,7 @@ theorem list_prod_ofFn_of_eq_dProd (n : ℕ) (fι : Fin n → ι) (fA : ∀ a, A
rw [List.ofFn_eq_map, of_list_dprod]
#align direct_sum.list_prod_of_fn_of_eq_dprod DirectSum.list_prod_ofFn_of_eq_dProd
-open BigOperators
+open scoped BigOperators
#print DirectSum.mul_eq_dfinsupp_sum /-
theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
@@ -726,7 +726,7 @@ instance Semiring.directSumGSemiring {R : Type _} [AddMonoid ι] [Semiring R] :
natCast_succ := Nat.cast_succ }
#align semiring.direct_sum_gsemiring Semiring.directSumGSemiring
-open DirectSum
+open scoped DirectSum
-- To check `has_mul.ghas_mul_mul` matches
example {R : Type _} [AddMonoid ι] [Semiring R] (i j : ι) (a b : R) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -94,12 +94,6 @@ section Defs
variable (A : ι → Type _)
-/- warning: direct_sum.gnon_unital_non_assoc_semiring -> DirectSum.GNonUnitalNonAssocSemiring is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
-but is expected to have type
- forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : Add.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
-Case conversion may be inaccurate. Consider using '#align direct_sum.gnon_unital_non_assoc_semiring DirectSum.GNonUnitalNonAssocSemiringₓ'. -/
/-- A graded version of `non_unital_non_assoc_semiring`. -/
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
GradedMonoid.GMul A where
@@ -115,12 +109,6 @@ section Defs
variable (A : ι → Type _)
-/- warning: direct_sum.gsemiring -> DirectSum.GSemiring is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
-but is expected to have type
- forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
-Case conversion may be inaccurate. Consider using '#align direct_sum.gsemiring DirectSum.GSemiringₓ'. -/
/-- A graded version of `semiring`. -/
class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
GradedMonoid.GMonoid A where
@@ -129,23 +117,11 @@ class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNo
natCast_succ : ∀ n : ℕ, nat_cast (n + 1) = nat_cast n + GradedMonoid.GOne.one
#align direct_sum.gsemiring DirectSum.GSemiring
-/- warning: direct_sum.gcomm_semiring -> DirectSum.GCommSemiring is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddCommMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
-but is expected to have type
- forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddCommMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
-Case conversion may be inaccurate. Consider using '#align direct_sum.gcomm_semiring DirectSum.GCommSemiringₓ'. -/
/-- A graded version of `comm_semiring`. -/
class GCommSemiring [AddCommMonoid ι] [∀ i, AddCommMonoid (A i)] extends GSemiring A,
GradedMonoid.GCommMonoid A
#align direct_sum.gcomm_semiring DirectSum.GCommSemiring
-/- warning: direct_sum.gring -> DirectSum.GRing is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommGroup.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
-but is expected to have type
- forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommGroup.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
-Case conversion may be inaccurate. Consider using '#align direct_sum.gring DirectSum.GRingₓ'. -/
/-- A graded version of `ring`. -/
class GRing [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends GSemiring A where
intCast : ℤ → A 0
@@ -153,21 +129,12 @@ class GRing [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends GSemiring A where
intCast_negSucc : ∀ n : ℕ, int_cast (-(n + 1 : ℕ)) = -nat_cast (n + 1 : ℕ)
#align direct_sum.gring DirectSum.GRing
-/- warning: direct_sum.gcomm_ring -> DirectSum.GCommRing is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddCommMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommGroup.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
-but is expected to have type
- forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddCommMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommGroup.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
-Case conversion may be inaccurate. Consider using '#align direct_sum.gcomm_ring DirectSum.GCommRingₓ'. -/
/-- A graded version of `comm_ring`. -/
class GCommRing [AddCommMonoid ι] [∀ i, AddCommGroup (A i)] extends GRing A, GCommSemiring A
#align direct_sum.gcomm_ring DirectSum.GCommRing
end Defs
-/- warning: direct_sum.of_eq_of_graded_monoid_eq -> DirectSum.of_eq_of_gradedMonoid_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_eq_of_graded_monoid_eq DirectSum.of_eq_of_gradedMonoid_eqₓ'. -/
theorem of_eq_of_gradedMonoid_eq {A : ι → Type _} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
{b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
DirectSum.of A i a = DirectSum.of A j b :=
@@ -193,12 +160,6 @@ variable [Add ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
open AddMonoidHom (flip_apply coe_comp compHom_apply_apply)
-/- warning: direct_sum.gmul_hom -> DirectSum.gMulHom is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι}, AddMonoidHom.{u2, u2} (A i) (AddMonoidHom.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j))))) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{u2} (AddMonoidHom.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j))))) (AddCommMonoid.toAddMonoid.{u2} (AddMonoidHom.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j))))) (AddMonoidHom.addCommMonoid.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))))
-but is expected to have type
- forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : Add.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)] [_inst_3 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι _inst_1 A (fun (i : ι) => _inst_2 i)] {_inst_4 : ι} {i : ι}, AddMonoidHom.{u2, u2} (_inst_1 _inst_4) (AddMonoidHom.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i))))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 _inst_4) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 _inst_4) (_inst_2 _inst_4))) (AddMonoid.toAddZeroClass.{u2} (AddMonoidHom.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i))))) (AddCommMonoid.toAddMonoid.{u2} (AddMonoidHom.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i))))) (AddMonoidHom.addCommMonoid.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.gmul_hom DirectSum.gMulHomₓ'. -/
/-- The piecewise multiplication from the `has_mul` instance, as a bundled homomorphism. -/
@[simps]
def gMulHom {i j} : A i →+ A j →+ A (i + j)
@@ -233,9 +194,6 @@ instance : NonUnitalNonAssocSemiring (⨁ i, A i) :=
variable {A}
-/- warning: direct_sum.mul_hom_of_of -> DirectSum.mulHom_of_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.mul_hom_of_of DirectSum.mulHom_of_ofₓ'. -/
theorem mulHom_of_of {i j} (a : A i) (b : A j) :
mulHom A (of _ i a) (of _ j b) = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
by
@@ -244,9 +202,6 @@ theorem mulHom_of_of {i j} (a : A i) (b : A j) :
comp_hom_apply_apply, coe_comp, Function.comp_apply, gmul_hom_apply_apply]
#align direct_sum.mul_hom_of_of DirectSum.mulHom_of_of
-/- warning: direct_sum.of_mul_of -> DirectSum.of_mul_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_mul_of DirectSum.of_mul_ofₓ'. -/
theorem of_mul_of {i j} (a : A i) (b : A j) :
of _ i a * of _ j b = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
mulHom_of_of a b
@@ -323,9 +278,6 @@ instance semiring : Semiring (⨁ i, A i) :=
#align direct_sum.semiring DirectSum.semiring
-/
-/- warning: direct_sum.of_pow -> DirectSum.ofPow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_pow DirectSum.ofPowₓ'. -/
theorem ofPow {i} (a : A i) (n : ℕ) :
of _ i a ^ n = of _ (n • i) (GradedMonoid.GMonoid.gnpow _ a) :=
by
@@ -335,9 +287,6 @@ theorem ofPow {i} (a : A i) (n : ℕ) :
exact of_eq_of_graded_monoid_eq (pow_succ (GradedMonoid.mk _ a) n).symm
#align direct_sum.of_pow DirectSum.ofPow
-/- warning: direct_sum.of_list_dprod -> DirectSum.ofList_dProd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_list_dprod DirectSum.ofList_dProdₓ'. -/
theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)) :
of A _ (l.dProd fι fA) = (l.map fun a => of A (fι a) (fA a)).Prod :=
by
@@ -348,9 +297,6 @@ theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)
rfl
#align direct_sum.of_list_dprod DirectSum.ofList_dProd
-/- warning: direct_sum.list_prod_of_fn_of_eq_dprod -> DirectSum.list_prod_ofFn_of_eq_dProd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.list_prod_of_fn_of_eq_dprod DirectSum.list_prod_ofFn_of_eq_dProdₓ'. -/
theorem list_prod_ofFn_of_eq_dProd (n : ℕ) (fι : Fin n → ι) (fA : ∀ a, A (fι a)) :
(List.ofFn fun a => of A (fι a) (fA a)).Prod = of A _ ((List.finRange n).dProd fι fA) := by
rw [List.ofFn_eq_map, of_list_dprod]
@@ -483,9 +429,6 @@ section One
variable [Zero ι] [GradedMonoid.GOne A] [∀ i, AddCommMonoid (A i)]
-/- warning: direct_sum.of_zero_one -> DirectSum.of_zero_one is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_one DirectSum.of_zero_oneₓ'. -/
@[simp]
theorem of_zero_one : of _ 0 (1 : A 0) = 1 :=
rfl
@@ -497,17 +440,11 @@ section Mul
variable [AddZeroClass ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
-/- warning: direct_sum.of_zero_smul -> DirectSum.of_zero_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_smul DirectSum.of_zero_smulₓ'. -/
@[simp]
theorem of_zero_smul {i} (a : A 0) (b : A i) : of _ _ (a • b) = of _ _ a * of _ _ b :=
(of_eq_of_gradedMonoid_eq (GradedMonoid.mk_zero_smul a b)).trans (of_mul_of _ _).symm
#align direct_sum.of_zero_smul DirectSum.of_zero_smul
-/- warning: direct_sum.of_zero_mul -> DirectSum.of_zero_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_mul DirectSum.of_zero_mulₓ'. -/
@[simp]
theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b :=
of_zero_smul A a b
@@ -534,9 +471,6 @@ section Semiring
variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
-/- warning: direct_sum.of_zero_pow -> DirectSum.of_zero_pow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_pow DirectSum.of_zero_powₓ'. -/
@[simp]
theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
| 0 => by rw [pow_zero, pow_zero, DirectSum.of_zero_one]
@@ -546,9 +480,6 @@ theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
instance : NatCast (A 0) :=
⟨GSemiring.natCast⟩
-/- warning: direct_sum.of_nat_cast -> DirectSum.ofNatCast is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_nat_cast DirectSum.ofNatCastₓ'. -/
@[simp]
theorem ofNatCast (n : ℕ) : of A 0 n = n :=
rfl
@@ -625,9 +556,6 @@ variable [∀ i, AddCommGroup (A i)] [AddMonoid ι] [GRing A]
instance : IntCast (A 0) :=
⟨GRing.intCast⟩
-/- warning: direct_sum.of_int_cast -> DirectSum.ofIntCast is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.of_int_cast DirectSum.ofIntCastₓ'. -/
@[simp]
theorem ofIntCast (n : ℤ) : of A 0 n = n :=
rfl
@@ -679,9 +607,6 @@ variable {R : Type _} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
variable {A}
-/- warning: direct_sum.ring_hom_ext' -> DirectSum.ringHom_ext' is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.ring_hom_ext' DirectSum.ringHom_ext'ₓ'. -/
/-- If two ring homomorphisms from `⨁ i, A i` are equal on each `of A i y`,
then they are equal.
@@ -692,9 +617,6 @@ theorem ringHom_ext' ⦃F G : (⨁ i, A i) →+* R⦄
RingHom.coe_addMonoidHom_injective <| DirectSum.addHom_ext' h
#align direct_sum.ring_hom_ext' DirectSum.ringHom_ext'
-/- warning: direct_sum.ring_hom_ext -> DirectSum.ringHom_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.ring_hom_ext DirectSum.ringHom_extₓ'. -/
/-- Two `ring_hom`s out of a direct sum are equal if they agree on the generators. -/
theorem ringHom_ext ⦃f g : (⨁ i, A i) →+* R⦄ (h : ∀ i x, f (of A i x) = g (of A i x)) : f = g :=
ringHom_ext' fun i => AddMonoidHom.ext <| h i
@@ -729,18 +651,12 @@ def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
#align direct_sum.to_semiring DirectSum.toSemiring
-/
-/- warning: direct_sum.to_semiring_of -> DirectSum.toSemiring_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_semiring_of DirectSum.toSemiring_ofₓ'. -/
@[simp]
theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
toSemiring f hone hmul (of _ i x) = f _ x :=
toAddMonoid_of f i x
#align direct_sum.to_semiring_of DirectSum.toSemiring_of
-/- warning: direct_sum.to_semiring_coe_add_monoid_hom -> DirectSum.toSemiring_coe_addMonoidHom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_semiring_coe_add_monoid_hom DirectSum.toSemiring_coe_addMonoidHomₓ'. -/
@[simp]
theorem toSemiring_coe_addMonoidHom (f : ∀ i, A i →+ R) (hone hmul) :
(toSemiring f hone hmul : (⨁ i, A i) →+ R) = toAddMonoid f :=
@@ -790,12 +706,6 @@ section Uniform
variable (ι)
-/- warning: non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring -> NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring is a dubious translation:
-lean 3 declaration is
- forall (ι : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u2}} [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : NonUnitalNonAssocSemiring.{u2} R], DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => R) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_3)
-but is expected to have type
- forall (ι : Type.{u1}) {_inst_1 : Type.{u2}} [R : AddMonoid.{u1} ι] [_inst_2 : NonUnitalNonAssocSemiring.{u2} _inst_1], DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6396 : ι) => _inst_1) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι R)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6396 : ι) => _inst_1) i) _inst_2)
-Case conversion may be inaccurate. Consider using '#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiringₓ'. -/
/-- A direct sum of copies of a `semiring` inherits the multiplication structure. -/
instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type _} [AddMonoid ι]
[NonUnitalNonAssocSemiring R] : DirectSum.GNonUnitalNonAssocSemiring fun i : ι => R :=
@@ -806,12 +716,6 @@ instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type
add_mul := fun i j => add_mul }
#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring
-/- warning: semiring.direct_sum_gsemiring -> Semiring.directSumGSemiring is a dubious translation:
-lean 3 declaration is
- forall (ι : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u2}} [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} R], DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => R) _inst_2 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_3)))
-but is expected to have type
- forall (ι : Type.{u1}) {_inst_1 : Type.{u2}} [R : AddMonoid.{u1} ι] [_inst_2 : Semiring.{u2} _inst_1], DirectSum.GSemiring.{u1, u2} ι (fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) R (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) i) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) i) _inst_2)))
-Case conversion may be inaccurate. Consider using '#align semiring.direct_sum_gsemiring Semiring.directSumGSemiringₓ'. -/
/-- A direct sum of copies of a `semiring` inherits the multiplication structure. -/
instance Semiring.directSumGSemiring {R : Type _} [AddMonoid ι] [Semiring R] :
DirectSum.GSemiring fun i : ι => R :=
@@ -829,12 +733,6 @@ example {R : Type _} [AddMonoid ι] [Semiring R] (i j : ι) (a b : R) :
(DirectSum.of _ i a * DirectSum.of _ j b : ⨁ i, R) = DirectSum.of _ (i + j) (a * b) := by
rw [DirectSum.of_mul_of, Mul.gMul_mul]
-/- warning: comm_semiring.direct_sum_gcomm_semiring -> CommSemiring.directSumGCommSemiring is a dubious translation:
-lean 3 declaration is
- forall (ι : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u2}} [_inst_2 : AddCommMonoid.{u1} ι] [_inst_3 : CommSemiring.{u2} R], DirectSum.GCommSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => R) _inst_2 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_3))))
-but is expected to have type
- forall (ι : Type.{u1}) {_inst_1 : Type.{u2}} [R : AddCommMonoid.{u1} ι] [_inst_2 : CommSemiring.{u2} _inst_1], DirectSum.GCommSemiring.{u1, u2} ι (fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) R (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) _inst_2))))
-Case conversion may be inaccurate. Consider using '#align comm_semiring.direct_sum_gcomm_semiring CommSemiring.directSumGCommSemiringₓ'. -/
/-- A direct sum of copies of a `comm_semiring` inherits the commutative multiplication structure.
-/
instance CommSemiring.directSumGCommSemiring {R : Type _} [AddCommMonoid ι] [CommSemiring R] :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -319,9 +319,7 @@ instance semiring : Semiring (⨁ i, A i) :=
mul_assoc := mul_assoc A
natCast := fun n => of _ _ (GSemiring.natCast n)
natCast_zero := by rw [gsemiring.nat_cast_zero, map_zero]
- natCast_succ := fun n => by
- rw [gsemiring.nat_cast_succ, map_add]
- rfl }
+ natCast_succ := fun n => by rw [gsemiring.nat_cast_succ, map_add]; rfl }
#align direct_sum.semiring DirectSum.semiring
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -166,10 +166,7 @@ class GCommRing [AddCommMonoid ι] [∀ i, AddCommGroup (A i)] extends GRing A,
end Defs
/- warning: direct_sum.of_eq_of_graded_monoid_eq -> DirectSum.of_eq_of_gradedMonoid_eq is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] {i : ι} {j : ι} {a : A i} {b : A j}, (Eq.{max (succ u1) (succ u2)} (GradedMonoid.{u1, u2} ι (fun {i : ι} => A i)) (GradedMonoid.mk.{u1, u2} ι (fun {i : ι} => A i) i a) (GradedMonoid.mk.{u1, u2} ι (fun {i : ι} => A i) j b)) -> (Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_2 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_2 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_2 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) j) b))
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] {i : ι} {j : ι} {a : A i} {b : A j}, (Eq.{max (succ u1) (succ u2)} (GradedMonoid.{u1, u2} ι A) (GradedMonoid.mk.{u1, u2} ι A i a) (GradedMonoid.mk.{u1, u2} ι A j b)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A j) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) j) b))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_eq_of_graded_monoid_eq DirectSum.of_eq_of_gradedMonoid_eqₓ'. -/
theorem of_eq_of_gradedMonoid_eq {A : ι → Type _} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
{b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
@@ -237,10 +234,7 @@ instance : NonUnitalNonAssocSemiring (⨁ i, A i) :=
variable {A}
/- warning: direct_sum.mul_hom_of_of -> DirectSum.mulHom_of_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) -> (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (DirectSum.mulHom.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_3 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_3 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_3 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i) a)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (A j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {j : ι} => A j) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j) b)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun {i : ι} => A i) _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u1}} [_inst_2 : Add.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (fun (a : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A j) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) j) b)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) _x) (AddHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addMonoidHomClass.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))))) (DirectSum.mulHom.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A j) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) j) b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (fun (_x : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.mul_hom_of_of DirectSum.mulHom_of_ofₓ'. -/
theorem mulHom_of_of {i j} (a : A i) (b : A j) :
mulHom A (of _ i a) (of _ j b) = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
@@ -251,10 +245,7 @@ theorem mulHom_of_of {i j} (a : A i) (b : A j) :
#align direct_sum.mul_hom_of_of DirectSum.mulHom_of_of
/- warning: direct_sum.of_mul_of -> DirectSum.of_mul_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_3 i) i) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {j : ι} => A j) (fun (i : ι) => _inst_3 i) j) b)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun {i : ι} => A i) _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u1}} [_inst_2 : Add.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A j) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) j) b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (fun (_x : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_mul_of DirectSum.of_mul_ofₓ'. -/
theorem of_mul_of {i j} (a : A i) (b : A j) :
of _ i a * of _ j b = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
@@ -279,7 +270,6 @@ private theorem [anonymous] (x : ⨁ i, A i) : 1 * x = x :=
unfold One.one
rw [mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (one_mul <| GradedMonoid.mk i xi)
-#align direct_sum.one_mul [anonymous]
-/
/- warning: direct_sum.mul_one clashes with [anonymous] -> [anonymous]
@@ -292,7 +282,6 @@ private theorem [anonymous] (x : ⨁ i, A i) : x * 1 = x :=
unfold One.one
rw [flip_apply, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (mul_one <| GradedMonoid.mk i xi)
-#align direct_sum.mul_one [anonymous]
-/
/- warning: direct_sum.mul_assoc clashes with [anonymous] -> [anonymous]
@@ -315,7 +304,6 @@ private theorem [anonymous] (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
dsimp only [coe_comp, Function.comp_apply, comp_hom_apply_apply, flip_apply, flip_hom_apply]
rw [mul_hom_of_of, mul_hom_of_of, mul_hom_of_of, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (mul_assoc (GradedMonoid.mk ai ax) ⟨bi, bx⟩ ⟨ci, cx⟩)
-#align direct_sum.mul_assoc [anonymous]
-/
#print DirectSum.semiring /-
@@ -338,10 +326,7 @@ instance semiring : Semiring (⨁ i, A i) :=
-/
/- warning: direct_sum.of_pow -> DirectSum.ofPow is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] {i : ι} (a : A i) (n : Nat), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instHPow.{max u1 u2, 0} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (Monoid.Pow.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (MonoidWithZero.toMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toMonoidWithZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_2 i) i) a) n) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (AddCommMonoid.toAddMonoid.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (_inst_2 (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (AddCommMonoid.toAddMonoid.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (_inst_2 (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (AddCommMonoid.toAddMonoid.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (_inst_2 (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_2 i) (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (GradedMonoid.GMonoid.gnpow.{u1, u2} ι (fun {i : ι} => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) n i a))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] {i : ι} (a : A i) (n : Nat), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (HPow.hPow.{max u2 u1, 0, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (instHPow.{max u2 u1, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat (Monoid.Pow.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (MonoidWithZero.toMonoid.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (Semiring.toMonoidWithZero.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (DirectSum.semiring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) a) n) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (fun (_x : A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (GradedMonoid.GMonoid.gnpow.{u2, u1} ι A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) n i a))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_pow DirectSum.ofPowₓ'. -/
theorem ofPow {i} (a : A i) (n : ℕ) :
of _ i a ^ n = of _ (n • i) (GradedMonoid.GMonoid.gnpow _ a) :=
@@ -353,10 +338,7 @@ theorem ofPow {i} (a : A i) (n : ℕ) :
#align direct_sum.of_pow DirectSum.ofPow
/- warning: direct_sum.of_list_dprod -> DirectSum.ofList_dProd is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] {α : Type.{u3}} (l : List.{u3} α) (fι : α -> ι) (fA : forall (a : α), A (fι a)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (List.dProd.{u1, u3, u2} ι α A _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) l fι fA)) (List.prod.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_4)))) (DirectSum.hasOne.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (List.map.{u3, max u1 u2} α (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (fun (a : α) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (fι a)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)) l))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] {α : Type.{u3}} (l : List.{u3} α) (fι : α -> ι) (fA : forall (a : α), A (fι a)), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (List.dProd.{u2, u3, u1} ι α A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) l fι fA)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (fun (_x : A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (List.dProd.{u2, u3, u1} ι α A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) l fι fA)) (List.prod.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (DirectSum.instOneDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddMonoid.toZero.{u2} ι _inst_3) (DirectSum.GSemiring.toGOne.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (fun (i : ι) => _inst_2 i)) (List.map.{u3, max u2 u1} α (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (a : α) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (fun (_x : A (fι a)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (fι a)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (fι a)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)) l))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_list_dprod DirectSum.ofList_dProdₓ'. -/
theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)) :
of A _ (l.dProd fι fA) = (l.map fun a => of A (fι a) (fA a)).Prod :=
@@ -369,10 +351,7 @@ theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)
#align direct_sum.of_list_dprod DirectSum.ofList_dProd
/- warning: direct_sum.list_prod_of_fn_of_eq_dprod -> DirectSum.list_prod_ofFn_of_eq_dProd is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat) (fι : (Fin n) -> ι) (fA : forall (a : Fin n), A (fι a)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (List.prod.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_4)))) (DirectSum.hasOne.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (List.ofFn.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) n (fun (a : Fin n) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (fι a)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (List.dProd.{u1, 0, u2} ι (Fin n) A _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (List.finRange n) fι fA))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat) (fι : (Fin n) -> ι) (fA : forall (a : Fin n), A (fι a)), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (List.prod.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (DirectSum.instOneDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddMonoid.toZero.{u2} ι _inst_3) (DirectSum.GSemiring.toGOne.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (fun (i : ι) => _inst_2 i)) (List.ofFn.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) n (fun (a : Fin n) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (fun (_x : A (fι a)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (fι a)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (fι a)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (fun (_x : A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (List.dProd.{u2, 0, u1} ι (Fin n) A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (List.finRange n) fι fA))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.list_prod_of_fn_of_eq_dprod DirectSum.list_prod_ofFn_of_eq_dProdₓ'. -/
theorem list_prod_ofFn_of_eq_dProd (n : ℕ) (fι : Fin n → ι) (fA : ∀ a, A (fι a)) :
(List.ofFn fun a => of A (fι a) (fA a)).Prod = of A _ ((List.finRange n).dProd fι fA) := by
@@ -417,7 +396,6 @@ private theorem [anonymous] (a b : ⨁ i, A i) : a * b = b * a :=
apply add_hom_ext; intro ai ax; apply add_hom_ext; intro bi bx
rw [AddMonoidHom.flip_apply, mul_hom_of_of, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (gcomm_semiring.mul_comm ⟨ai, ax⟩ ⟨bi, bx⟩)
-#align direct_sum.mul_comm [anonymous]
-/
#print DirectSum.commSemiring /-
@@ -508,10 +486,7 @@ section One
variable [Zero ι] [GradedMonoid.GOne A] [∀ i, AddCommMonoid (A i)]
/- warning: direct_sum.of_zero_one -> DirectSum.of_zero_one is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : Zero.{u1} ι] [_inst_3 : GradedMonoid.GOne.{u1, u2} ι A _inst_2] [_inst_4 : forall (i : ι), AddCommMonoid.{u2} (A i)], Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (_inst_4 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (_inst_4 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (_inst_4 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_4 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (OfNat.ofNat.{u2} (A (Zero.zero.{u1} ι _inst_2)) 1 (OfNat.mk.{u2} (A (Zero.zero.{u1} ι _inst_2)) 1 (One.one.{u2} (A (Zero.zero.{u1} ι _inst_2)) (GradedMonoid.GradeZero.one.{u1, u2} ι A _inst_2 _inst_3))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) 1 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) 1 (One.one.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.hasOne.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 _inst_3 (fun (i : ι) => _inst_4 i)))))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : Zero.{u2} ι] [_inst_3 : GradedMonoid.GOne.{u2, u1} ι A _inst_2] [_inst_4 : forall (i : ι), AddCommMonoid.{u1} (A i)], Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2)))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_4 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) (OfNat.ofNat.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) 1 (One.toOfNat1.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) (DirectSum.instOneDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 _inst_3 (fun (i : ι) => _inst_4 i))))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_one DirectSum.of_zero_oneₓ'. -/
@[simp]
theorem of_zero_one : of _ 0 (1 : A 0) = 1 :=
@@ -525,10 +500,7 @@ section Mul
variable [AddZeroClass ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
/- warning: direct_sum.of_zero_smul -> DirectSum.of_zero_smul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddZeroClass.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i)] {i : ι} (a : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (b : A i), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) (SMul.smul.{u2, u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (A i) (GradedMonoid.GradeZero.smul.{u1, u2} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4) i) a b)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) b))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : AddZeroClass.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i)] {i : ι} (a : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (b : A i), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (HSMul.hSMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (A i) (instHSMul.{u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (GradedMonoid.GradeZero.smul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4) i)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) (HSMul.hSMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (A i) (instHSMul.{u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (GradedMonoid.GradeZero.smul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4) i)) a b)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) b))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_smul DirectSum.of_zero_smulₓ'. -/
@[simp]
theorem of_zero_smul {i} (a : A 0) (b : A i) : of _ _ (a • b) = of _ _ a * of _ _ b :=
@@ -536,10 +508,7 @@ theorem of_zero_smul {i} (a : A 0) (b : A i) : of _ _ (a • b) = of _ _ a * of
#align direct_sum.of_zero_smul DirectSum.of_zero_smul
/- warning: direct_sum.of_zero_mul -> DirectSum.of_zero_mul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddZeroClass.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i)] (a : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (b : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (HMul.hMul.{u2, u2, u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (instHMul.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (GradedMonoid.GradeZero.mul.{u1, u2} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) a b)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) b))
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : AddZeroClass.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i)] (a : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (b : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (HMul.hMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (instHMul.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (GradedMonoid.GradeZero.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (HMul.hMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (instHMul.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (GradedMonoid.GradeZero.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) a b)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) b))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_mul DirectSum.of_zero_mulₓ'. -/
@[simp]
theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b :=
@@ -568,10 +537,7 @@ section Semiring
variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
/- warning: direct_sum.of_zero_pow -> DirectSum.of_zero_pow is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (a : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (n : Nat), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (HPow.hPow.{u2, 0, u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (instHPow.{u2, 0} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) Nat (GradedMonoid.Nat.hasPow.{u1, u2} ι A _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) a n)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instHPow.{max u1 u2, 0} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (Monoid.Pow.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (MonoidWithZero.toMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toMonoidWithZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) a) n)
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (a : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (n : Nat), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (HPow.hPow.{u1, 0, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (instHPow.{u1, 0} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (GradedMonoid.instPowOfNatToOfNat0ToZeroNat.{u2, u1} ι A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) a n)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (HPow.hPow.{u1, 0, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (instHPow.{u1, 0} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (GradedMonoid.instPowOfNatToOfNat0ToZeroNat.{u2, u1} ι A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) a n)) (HPow.hPow.{max u2 u1, 0, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (instHPow.{max u2 u1, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat (Monoid.Pow.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (MonoidWithZero.toMonoid.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (Semiring.toMonoidWithZero.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (DirectSum.semiring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) a) n)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_pow DirectSum.of_zero_powₓ'. -/
@[simp]
theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
@@ -583,10 +549,7 @@ instance : NatCast (A 0) :=
⟨GSemiring.natCast⟩
/- warning: direct_sum.of_nat_cast -> DirectSum.ofNatCast is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (HasLiftT.mk.{1, succ u2} Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (CoeTCₓ.coe.{1, succ u2} Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (Nat.castCoe.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.hasNatCast.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) n)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (HasLiftT.mk.{1, succ (max u1 u2)} Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Nat.castCoe.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidWithOne.toNatCast.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)))))))) n)
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Nat.cast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Semiring.toNatCast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (DirectSum.semiring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) n)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_nat_cast DirectSum.ofNatCastₓ'. -/
@[simp]
theorem ofNatCast (n : ℕ) : of A 0 n = n :=
@@ -665,10 +628,7 @@ instance : IntCast (A 0) :=
⟨GRing.intCast⟩
/- warning: direct_sum.of_int_cast -> DirectSum.ofIntCast is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommGroup.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GRing.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Int), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (HasLiftT.mk.{1, succ u2} Int (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (CoeTCₓ.coe.{1, succ u2} Int (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (Int.castCoe.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.hasIntCast.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) n)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Int (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (HasLiftT.mk.{1, succ (max u1 u2)} Int (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Int (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (Int.castCoe.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddGroupWithOne.toHasIntCast.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (Ring.toAddCommGroupWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.ring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))))) n)
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommGroup.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GRing.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Int), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Int.cast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Ring.toIntCast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (DirectSum.ring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) n)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.of_int_cast DirectSum.ofIntCastₓ'. -/
@[simp]
theorem ofIntCast (n : ℤ) : of A 0 n = n :=
@@ -722,10 +682,7 @@ variable {R : Type _} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
variable {A}
/- warning: direct_sum.ring_hom_ext' -> DirectSum.ringHom_ext' is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] {{F : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}} {{G : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}}, (forall (i : ι), Eq.{max (succ u3) (succ u2)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5) (RingHom.ringHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) F) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.comp.{u2, max u1 u2, u3} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5) (RingHom.ringHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) G) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) F G)
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u3}} {R : Type.{u1}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u1} R] {{F : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}} {{G : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}}, (forall (i : ι), Eq.{max (succ u3) (succ u1)} (AddMonoidHom.{u3, u1} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))))) (AddMonoidHom.comp.{u3, max u2 u3, u1} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (AddMonoidHomClass.toAddMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))) F) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.comp.{u3, max u2 u3, u1} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (AddMonoidHomClass.toAddMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))) G) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) F G)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.ring_hom_ext' DirectSum.ringHom_ext'ₓ'. -/
/-- If two ring homomorphisms from `⨁ i, A i` are equal on each `of A i y`,
then they are equal.
@@ -738,10 +695,7 @@ theorem ringHom_ext' ⦃F G : (⨁ i, A i) →+* R⦄
#align direct_sum.ring_hom_ext' DirectSum.ringHom_ext'
/- warning: direct_sum.ring_hom_ext -> DirectSum.ringHom_ext is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] {{f : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}} {{g : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}}, (forall (i : ι) (x : A i), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) f (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) g (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) f g)
-but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u3}} {R : Type.{u1}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u1} R] {{f : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}} {{g : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}}, (forall (i : ι) (x : A i), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) g (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) f g)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.ring_hom_ext DirectSum.ringHom_extₓ'. -/
/-- Two `ring_hom`s out of a direct sum are equal if they agree on the generators. -/
theorem ringHom_ext ⦃f g : (⨁ i, A i) →+* R⦄ (h : ∀ i x, f (of A i x) = g (of A i x)) : f = g :=
@@ -778,10 +732,7 @@ def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
-/
/- warning: direct_sum.to_semiring_of -> DirectSum.toSemiring_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] (f : forall (i : ι), AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (hone : Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (GradedMonoid.GOne.one.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) ai) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A j) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f j) aj))) (i : ι) (x : A i), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.toSemiring.{u1, u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) i) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) x)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u3}} {R : Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u2} R] (f : forall (i : ι), AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (hone : Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddZeroClass.toAdd.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3))))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) _inst_5)))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (fun (_x : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddZeroClass.toAdd.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) aj) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) _inst_5)))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) ai) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddZeroClass.toAdd.{u3} (A j) (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f j) aj))) (i : ι) (x : A i), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u1) (succ u3), succ u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5) (RingHom.instRingHomClassRingHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (DirectSum.toSemiring.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.to_semiring_of DirectSum.toSemiring_ofₓ'. -/
@[simp]
theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
@@ -790,10 +741,7 @@ theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
#align direct_sum.to_semiring_of DirectSum.toSemiring_of
/- warning: direct_sum.to_semiring_coe_add_monoid_hom -> DirectSum.toSemiring_coe_addMonoidHom is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] (f : forall (i : ι), AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (hone : Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (GradedMonoid.GOne.one.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) ai) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A j) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f j) aj))), Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5) (RingHom.ringHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (DirectSum.toSemiring.{u1, u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul)) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))) f)
-but is expected to have type
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u3}} {R : Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u2} R] (f : forall (i : ι), AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (hone : Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddZeroClass.toAdd.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3))))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) _inst_5)))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (fun (_x : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddZeroClass.toAdd.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) aj) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) _inst_5)))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) ai) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddZeroClass.toAdd.{u3} (A j) (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f j) aj))), Eq.{max (max (succ u1) (succ u3)) (succ u2)} (AddMonoidHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddMonoidHom.{max u1 u3, u2, max (max u1 u3) u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5) (RingHom.instRingHomClassRingHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5))) (DirectSum.toSemiring.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul)) (DirectSum.toAddMonoid.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))) f)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.to_semiring_coe_add_monoid_hom DirectSum.toSemiring_coe_addMonoidHomₓ'. -/
@[simp]
theorem toSemiring_coe_addMonoidHom (f : ∀ i, A i →+ R) (hone hmul) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -741,7 +741,7 @@ theorem ringHom_ext' ⦃F G : (⨁ i, A i) →+* R⦄
lean 3 declaration is
forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] {{f : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}} {{g : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}}, (forall (i : ι) (x : A i), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) f (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) g (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) f g)
but is expected to have type
- forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u3}} {R : Type.{u1}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u1} R] {{f : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}} {{g : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}}, (forall (i : ι) (x : A i), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) g (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) f g)
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u3}} {R : Type.{u1}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u1} R] {{f : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}} {{g : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}}, (forall (i : ι) (x : A i), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) g (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) f g)
Case conversion may be inaccurate. Consider using '#align direct_sum.ring_hom_ext DirectSum.ringHom_extₓ'. -/
/-- Two `ring_hom`s out of a direct sum are equal if they agree on the generators. -/
theorem ringHom_ext ⦃f g : (⨁ i, A i) →+* R⦄ (h : ∀ i x, f (of A i x) = g (of A i x)) : f = g :=
@@ -781,7 +781,7 @@ def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
lean 3 declaration is
forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] (f : forall (i : ι), AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (hone : Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (GradedMonoid.GOne.one.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) ai) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A j) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f j) aj))) (i : ι) (x : A i), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.toSemiring.{u1, u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) i) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) x)
but is expected to have type
- forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u3}} {R : Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u2} R] (f : forall (i : ι), AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (hone : Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddZeroClass.toAdd.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3))))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) _inst_5)))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (fun (_x : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddZeroClass.toAdd.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) aj) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) _inst_5)))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) ai) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddZeroClass.toAdd.{u3} (A j) (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f j) aj))) (i : ι) (x : A i), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u1) (succ u3), succ u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5) (RingHom.instRingHomClassRingHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (DirectSum.toSemiring.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) x)
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u3}} {R : Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u2} R] (f : forall (i : ι), AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (hone : Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddZeroClass.toAdd.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3))))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) _inst_5)))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (fun (_x : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddZeroClass.toAdd.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) aj) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) _inst_5)))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) ai) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddZeroClass.toAdd.{u3} (A j) (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f j) aj))) (i : ι) (x : A i), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u1) (succ u3), succ u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5) (RingHom.instRingHomClassRingHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (DirectSum.toSemiring.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) x)
Case conversion may be inaccurate. Consider using '#align direct_sum.to_semiring_of DirectSum.toSemiring_ofₓ'. -/
@[simp]
theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
! This file was ported from Lean 3 source module algebra.direct_sum.ring
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 50251fd6309cca5ca2e747882ffecd2729f38c5d
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Algebra.DirectSum.Basic
/-!
# Additively-graded multiplicative structures on `⨁ i, A i`
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This module provides a set of heterogeneous typeclasses for defining a multiplicative structure
over `⨁ i, A i` such that `(*) : A i → A j → A (i + j)`; that is to say, `A` forms an
additively-graded ring. The typeclasses are:
mathlib commit https://github.com/leanprover-community/mathlib/commit/f8c79b0a623404854a2902b836eac32156fd7712
@@ -91,14 +91,20 @@ section Defs
variable (A : ι → Type _)
+/- warning: direct_sum.gnon_unital_non_assoc_semiring -> DirectSum.GNonUnitalNonAssocSemiring is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
+but is expected to have type
+ forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : Add.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
+Case conversion may be inaccurate. Consider using '#align direct_sum.gnon_unital_non_assoc_semiring DirectSum.GNonUnitalNonAssocSemiringₓ'. -/
/-- A graded version of `non_unital_non_assoc_semiring`. -/
-class GnonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
+class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
GradedMonoid.GMul A where
mul_zero : ∀ {i j} (a : A i), mul a (0 : A j) = 0
zero_mul : ∀ {i j} (b : A j), mul (0 : A i) b = 0
mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
-#align direct_sum.gnon_unital_non_assoc_semiring DirectSum.GnonUnitalNonAssocSemiring
+#align direct_sum.gnon_unital_non_assoc_semiring DirectSum.GNonUnitalNonAssocSemiring
end Defs
@@ -106,32 +112,62 @@ section Defs
variable (A : ι → Type _)
+/- warning: direct_sum.gsemiring -> DirectSum.GSemiring is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
+but is expected to have type
+ forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
+Case conversion may be inaccurate. Consider using '#align direct_sum.gsemiring DirectSum.GSemiringₓ'. -/
/-- A graded version of `semiring`. -/
-class Gsemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GnonUnitalNonAssocSemiring A,
+class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
GradedMonoid.GMonoid A where
natCast : ℕ → A 0
natCast_zero : nat_cast 0 = 0
natCast_succ : ∀ n : ℕ, nat_cast (n + 1) = nat_cast n + GradedMonoid.GOne.one
-#align direct_sum.gsemiring DirectSum.Gsemiring
-
+#align direct_sum.gsemiring DirectSum.GSemiring
+
+/- warning: direct_sum.gcomm_semiring -> DirectSum.GCommSemiring is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddCommMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
+but is expected to have type
+ forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddCommMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
+Case conversion may be inaccurate. Consider using '#align direct_sum.gcomm_semiring DirectSum.GCommSemiringₓ'. -/
/-- A graded version of `comm_semiring`. -/
-class GcommSemiring [AddCommMonoid ι] [∀ i, AddCommMonoid (A i)] extends Gsemiring A,
+class GCommSemiring [AddCommMonoid ι] [∀ i, AddCommMonoid (A i)] extends GSemiring A,
GradedMonoid.GCommMonoid A
-#align direct_sum.gcomm_semiring DirectSum.GcommSemiring
-
+#align direct_sum.gcomm_semiring DirectSum.GCommSemiring
+
+/- warning: direct_sum.gring -> DirectSum.GRing is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommGroup.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
+but is expected to have type
+ forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommGroup.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
+Case conversion may be inaccurate. Consider using '#align direct_sum.gring DirectSum.GRingₓ'. -/
/-- A graded version of `ring`. -/
-class Gring [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends Gsemiring A where
+class GRing [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends GSemiring A where
intCast : ℤ → A 0
intCast_ofNat : ∀ n : ℕ, int_cast n = nat_cast n
intCast_negSucc : ∀ n : ℕ, int_cast (-(n + 1 : ℕ)) = -nat_cast (n + 1 : ℕ)
-#align direct_sum.gring DirectSum.Gring
-
+#align direct_sum.gring DirectSum.GRing
+
+/- warning: direct_sum.gcomm_ring -> DirectSum.GCommRing is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddCommMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommGroup.{u2} (A i)], Sort.{max (succ u1) (succ u2)}
+but is expected to have type
+ forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : AddCommMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommGroup.{u2} (_inst_1 i)], Sort.{max (succ u1) (succ u2)}
+Case conversion may be inaccurate. Consider using '#align direct_sum.gcomm_ring DirectSum.GCommRingₓ'. -/
/-- A graded version of `comm_ring`. -/
-class GcommRing [AddCommMonoid ι] [∀ i, AddCommGroup (A i)] extends Gring A, GcommSemiring A
-#align direct_sum.gcomm_ring DirectSum.GcommRing
+class GCommRing [AddCommMonoid ι] [∀ i, AddCommGroup (A i)] extends GRing A, GCommSemiring A
+#align direct_sum.gcomm_ring DirectSum.GCommRing
end Defs
+/- warning: direct_sum.of_eq_of_graded_monoid_eq -> DirectSum.of_eq_of_gradedMonoid_eq is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] {i : ι} {j : ι} {a : A i} {b : A j}, (Eq.{max (succ u1) (succ u2)} (GradedMonoid.{u1, u2} ι (fun {i : ι} => A i)) (GradedMonoid.mk.{u1, u2} ι (fun {i : ι} => A i) i a) (GradedMonoid.mk.{u1, u2} ι (fun {i : ι} => A i) j b)) -> (Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_2 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_2 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_2 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) j) b))
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] {i : ι} {j : ι} {a : A i} {b : A j}, (Eq.{max (succ u1) (succ u2)} (GradedMonoid.{u1, u2} ι A) (GradedMonoid.mk.{u1, u2} ι A i a) (GradedMonoid.mk.{u1, u2} ι A j b)) -> (Eq.{max (succ u1) (succ u2)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) a) (FunLike.coe.{max (succ u1) (succ u2), succ u2, max (succ u1) (succ u2)} (AddMonoidHom.{u2, max u2 u1} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A j) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u2, max u1 u2} (AddMonoidHom.{u2, max u2 u1} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) j) b))
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_eq_of_graded_monoid_eq DirectSum.of_eq_of_gradedMonoid_eqₓ'. -/
theorem of_eq_of_gradedMonoid_eq {A : ι → Type _} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
{b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
DirectSum.of A i a = DirectSum.of A j b :=
@@ -153,29 +189,37 @@ end One
section Mul
-variable [Add ι] [∀ i, AddCommMonoid (A i)] [GnonUnitalNonAssocSemiring A]
+variable [Add ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
open AddMonoidHom (flip_apply coe_comp compHom_apply_apply)
+/- warning: direct_sum.gmul_hom -> DirectSum.gMulHom is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι}, AddMonoidHom.{u2, u2} (A i) (AddMonoidHom.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j))))) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{u2} (AddMonoidHom.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j))))) (AddCommMonoid.toAddMonoid.{u2} (AddMonoidHom.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j))))) (AddMonoidHom.addCommMonoid.{u2, u2} (A j) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))))
+but is expected to have type
+ forall {ι : Type.{u1}} (_inst_1 : ι -> Type.{u2}) [A : Add.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (_inst_1 i)] [_inst_3 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι _inst_1 A (fun (i : ι) => _inst_2 i)] {_inst_4 : ι} {i : ι}, AddMonoidHom.{u2, u2} (_inst_1 _inst_4) (AddMonoidHom.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i))))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 _inst_4) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 _inst_4) (_inst_2 _inst_4))) (AddMonoid.toAddZeroClass.{u2} (AddMonoidHom.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i))))) (AddCommMonoid.toAddMonoid.{u2} (AddMonoidHom.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i))))) (AddMonoidHom.addCommMonoid.{u2, u2} (_inst_1 i) (_inst_1 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (_inst_1 i) (AddCommMonoid.toAddMonoid.{u2} (_inst_1 i) (_inst_2 i))) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι A) _inst_4 i)))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.gmul_hom DirectSum.gMulHomₓ'. -/
/-- The piecewise multiplication from the `has_mul` instance, as a bundled homomorphism. -/
@[simps]
-def gmulHom {i j} : A i →+ A j →+ A (i + j)
+def gMulHom {i j} : A i →+ A j →+ A (i + j)
where
toFun a :=
{ toFun := fun b => GradedMonoid.GMul.mul a b
- map_zero' := GnonUnitalNonAssocSemiring.mul_zero _
- map_add' := GnonUnitalNonAssocSemiring.mul_add _ }
- map_zero' := AddMonoidHom.ext fun a => GnonUnitalNonAssocSemiring.zero_mul a
- map_add' a₁ a₂ := AddMonoidHom.ext fun b => GnonUnitalNonAssocSemiring.add_mul _ _ _
-#align direct_sum.gmul_hom DirectSum.gmulHom
+ map_zero' := GNonUnitalNonAssocSemiring.mul_zero _
+ map_add' := GNonUnitalNonAssocSemiring.mul_add _ }
+ map_zero' := AddMonoidHom.ext fun a => GNonUnitalNonAssocSemiring.zero_mul a
+ map_add' a₁ a₂ := AddMonoidHom.ext fun b => GNonUnitalNonAssocSemiring.add_mul _ _ _
+#align direct_sum.gmul_hom DirectSum.gMulHom
+#print DirectSum.mulHom /-
/-- The multiplication from the `has_mul` instance, as a bundled homomorphism. -/
def mulHom : (⨁ i, A i) →+ (⨁ i, A i) →+ ⨁ i, A i :=
DirectSum.toAddMonoid fun i =>
AddMonoidHom.flip <|
DirectSum.toAddMonoid fun j =>
- AddMonoidHom.flip <| (DirectSum.of A _).compHom.comp <| gmulHom A
+ AddMonoidHom.flip <| (DirectSum.of A _).compHom.comp <| gMulHom A
#align direct_sum.mul_hom DirectSum.mulHom
+-/
instance : NonUnitalNonAssocSemiring (⨁ i, A i) :=
{ DirectSum.addCommMonoid _ _ with
@@ -189,6 +233,12 @@ instance : NonUnitalNonAssocSemiring (⨁ i, A i) :=
variable {A}
+/- warning: direct_sum.mul_hom_of_of -> DirectSum.mulHom_of_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) -> (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (DirectSum.mulHom.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_3 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_3 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_3 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) i) a)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (A j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {j : ι} => A j) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) j) b)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun {i : ι} => A i) _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u1}} [_inst_2 : Add.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (fun (a : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A j) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) j) b)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) => AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) _x) (AddHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addMonoidHomClass.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u2 u1} (AddMonoidHom.{max u1 u2, max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))))))) (DirectSum.mulHom.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A j) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) j) b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (fun (_x : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
+Case conversion may be inaccurate. Consider using '#align direct_sum.mul_hom_of_of DirectSum.mulHom_of_ofₓ'. -/
theorem mulHom_of_of {i j} (a : A i) (b : A j) :
mulHom A (of _ i a) (of _ j b) = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
by
@@ -197,6 +247,12 @@ theorem mulHom_of_of {i j} (a : A i) (b : A j) :
comp_hom_apply_apply, coe_comp, Function.comp_apply, gmul_hom_apply_apply]
#align direct_sum.mul_hom_of_of DirectSum.mulHom_of_of
+/- warning: direct_sum.of_mul_of -> DirectSum.of_mul_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} [_inst_2 : Add.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_3 i) i) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A j) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A j) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {j : ι} => A j) (fun (i : ι) => _inst_3 i) j) b)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun {i : ι} => A i) _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u1}} [_inst_2 : Add.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i)] {i : ι} {j : ι} (a : A i) (b : A j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 (fun (i : ι) => _inst_3 i) _inst_4))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) a) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A j) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A j) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A j) (AddCommMonoid.toAddMonoid.{u1} (A j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) j) b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (fun (_x : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (AddCommMonoid.toAddMonoid.{u1} (A (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (_inst_3 (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u2, u2, u2} ι ι ι (instHAdd.{u2} ι _inst_2) i j)) (GradedMonoid.GMul.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4) i j a b))
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_mul_of DirectSum.of_mul_ofₓ'. -/
theorem of_mul_of {i j} (a : A i) (b : A j) :
of _ i a * of _ j b = of _ (i + j) (GradedMonoid.GMul.mul a b) :=
mulHom_of_of a b
@@ -206,29 +262,40 @@ end Mul
section Semiring
-variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [Gsemiring A]
+variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
open AddMonoidHom (flipHom coe_comp compHom_apply_apply flip_apply flipHom_apply)
-private theorem one_mul (x : ⨁ i, A i) : 1 * x = x :=
+/- warning: direct_sum.one_mul clashes with [anonymous] -> [anonymous]
+Case conversion may be inaccurate. Consider using '#align direct_sum.one_mul [anonymous]ₓ'. -/
+#print [anonymous] /-
+private theorem [anonymous] (x : ⨁ i, A i) : 1 * x = x :=
by
suffices mulHom A 1 = AddMonoidHom.id (⨁ i, A i) from AddMonoidHom.congr_fun this x
apply add_hom_ext; intro i xi
unfold One.one
rw [mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (one_mul <| GradedMonoid.mk i xi)
-#align direct_sum.one_mul direct_sum.one_mul
+#align direct_sum.one_mul [anonymous]
+-/
-private theorem mul_one (x : ⨁ i, A i) : x * 1 = x :=
+/- warning: direct_sum.mul_one clashes with [anonymous] -> [anonymous]
+Case conversion may be inaccurate. Consider using '#align direct_sum.mul_one [anonymous]ₓ'. -/
+#print [anonymous] /-
+private theorem [anonymous] (x : ⨁ i, A i) : x * 1 = x :=
by
suffices (mulHom A).flip 1 = AddMonoidHom.id (⨁ i, A i) from AddMonoidHom.congr_fun this x
apply add_hom_ext; intro i xi
unfold One.one
rw [flip_apply, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (mul_one <| GradedMonoid.mk i xi)
-#align direct_sum.mul_one direct_sum.mul_one
+#align direct_sum.mul_one [anonymous]
+-/
-private theorem mul_assoc (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
+/- warning: direct_sum.mul_assoc clashes with [anonymous] -> [anonymous]
+Case conversion may be inaccurate. Consider using '#align direct_sum.mul_assoc [anonymous]ₓ'. -/
+#print [anonymous] /-
+private theorem [anonymous] (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
by
suffices
(-- `λ a b c, a * b * c` as a bundled hom
@@ -245,8 +312,10 @@ private theorem mul_assoc (a b c : ⨁ i, A i) : a * b * c = a * (b * c) :=
dsimp only [coe_comp, Function.comp_apply, comp_hom_apply_apply, flip_apply, flip_hom_apply]
rw [mul_hom_of_of, mul_hom_of_of, mul_hom_of_of, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (mul_assoc (GradedMonoid.mk ai ax) ⟨bi, bx⟩ ⟨ci, cx⟩)
-#align direct_sum.mul_assoc direct_sum.mul_assoc
+#align direct_sum.mul_assoc [anonymous]
+-/
+#print DirectSum.semiring /-
/-- The `semiring` structure derived from `gsemiring A`. -/
instance semiring : Semiring (⨁ i, A i) :=
{ DirectSum.nonUnitalNonAssocSemiring _ with
@@ -257,23 +326,36 @@ instance semiring : Semiring (⨁ i, A i) :=
one_mul := one_mul A
mul_one := mul_one A
mul_assoc := mul_assoc A
- natCast := fun n => of _ _ (Gsemiring.natCast n)
+ natCast := fun n => of _ _ (GSemiring.natCast n)
natCast_zero := by rw [gsemiring.nat_cast_zero, map_zero]
natCast_succ := fun n => by
rw [gsemiring.nat_cast_succ, map_add]
rfl }
#align direct_sum.semiring DirectSum.semiring
+-/
-theorem of_pow {i} (a : A i) (n : ℕ) :
+/- warning: direct_sum.of_pow -> DirectSum.ofPow is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] {i : ι} (a : A i) (n : Nat), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instHPow.{max u1 u2, 0} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (Monoid.Pow.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (MonoidWithZero.toMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toMonoidWithZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_2 i) i) a) n) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (AddCommMonoid.toAddMonoid.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (_inst_2 (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (AddCommMonoid.toAddMonoid.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (_inst_2 (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (AddCommMonoid.toAddMonoid.{u2} (A (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (_inst_2 (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) (fun (i : ι) => _inst_2 i) (SMul.smul.{0, u1} Nat ι (AddMonoid.SMul.{u1} ι _inst_3) n i)) (GradedMonoid.GMonoid.gnpow.{u1, u2} ι (fun {i : ι} => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) n i a))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] {i : ι} (a : A i) (n : Nat), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (HPow.hPow.{max u2 u1, 0, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (instHPow.{max u2 u1, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat (Monoid.Pow.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (MonoidWithZero.toMonoid.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (Semiring.toMonoidWithZero.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (DirectSum.semiring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) a) n) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (fun (_x : A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (AddCommMonoid.toAddMonoid.{u1} (A (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (_inst_2 (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (HSMul.hSMul.{0, u2, u2} Nat ι ι (instHSMul.{0, u2} Nat ι (AddMonoid.SMul.{u2} ι _inst_3)) n i)) (GradedMonoid.GMonoid.gnpow.{u2, u1} ι A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) n i a))
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_pow DirectSum.ofPowₓ'. -/
+theorem ofPow {i} (a : A i) (n : ℕ) :
of _ i a ^ n = of _ (n • i) (GradedMonoid.GMonoid.gnpow _ a) :=
by
induction' n with n
· exact of_eq_of_graded_monoid_eq (pow_zero <| GradedMonoid.mk _ a).symm
· rw [pow_succ, n_ih, of_mul_of]
exact of_eq_of_graded_monoid_eq (pow_succ (GradedMonoid.mk _ a) n).symm
-#align direct_sum.of_pow DirectSum.of_pow
-
-theorem of_list_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)) :
+#align direct_sum.of_pow DirectSum.ofPow
+
+/- warning: direct_sum.of_list_dprod -> DirectSum.ofList_dProd is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] {α : Type.{u3}} (l : List.{u3} α) (fι : α -> ι) (fA : forall (a : α), A (fι a)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, u3} ι α _inst_3 l fι)) (List.dProd.{u1, u3, u2} ι α A _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) l fι fA)) (List.prod.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_4)))) (DirectSum.hasOne.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (List.map.{u3, max u1 u2} α (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (fun (a : α) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (fι a)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)) l))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] {α : Type.{u3}} (l : List.{u3} α) (fι : α -> ι) (fA : forall (a : α), A (fι a)), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (List.dProd.{u2, u3, u1} ι α A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) l fι fA)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (fun (_x : A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (_inst_2 (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u2, u3} ι α _inst_3 l fι)) (List.dProd.{u2, u3, u1} ι α A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) l fι fA)) (List.prod.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (DirectSum.instOneDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddMonoid.toZero.{u2} ι _inst_3) (DirectSum.GSemiring.toGOne.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (fun (i : ι) => _inst_2 i)) (List.map.{u3, max u2 u1} α (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (a : α) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (fun (_x : A (fι a)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (fι a)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (fι a)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)) l))
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_list_dprod DirectSum.ofList_dProdₓ'. -/
+theorem ofList_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a)) :
of A _ (l.dProd fι fA) = (l.map fun a => of A (fι a) (fA a)).Prod :=
by
induction l
@@ -281,8 +363,14 @@ theorem of_list_dProd {α} (l : List α) (fι : α → ι) (fA : ∀ a, A (fι a
rfl
· simp only [List.map_cons, List.prod_cons, List.dProd_cons, ← l_ih, DirectSum.of_mul_of]
rfl
-#align direct_sum.of_list_dprod DirectSum.of_list_dProd
-
+#align direct_sum.of_list_dprod DirectSum.ofList_dProd
+
+/- warning: direct_sum.list_prod_of_fn_of_eq_dprod -> DirectSum.list_prod_ofFn_of_eq_dProd is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat) (fι : (Fin n) -> ι) (fA : forall (a : Fin n), A (fι a)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (List.prod.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_4)))) (DirectSum.hasOne.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (List.ofFn.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) n (fun (a : Fin n) => coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (fι a)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (fι a)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (fι a)) (AddCommMonoid.toAddMonoid.{u2} (A (fι a)) ((fun (i : ι) => _inst_2 i) (fι a)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u2} (A (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) ((fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u1, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (List.dProd.{u1, 0, u2} ι (Fin n) A _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (List.finRange n) fι fA))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat) (fι : (Fin n) -> ι) (fA : forall (a : Fin n), A (fι a)), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (List.prod.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (DirectSum.instOneDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddMonoid.toZero.{u2} ι _inst_3) (DirectSum.GSemiring.toGOne.{u2, u1} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (fun (i : ι) => _inst_2 i)) (List.ofFn.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) n (fun (a : Fin n) => FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (fun (_x : A (fι a)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (fι a)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (fι a)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (fι a)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (fι a)) (AddCommMonoid.toAddMonoid.{u1} (A (fι a)) (_inst_2 (fι a)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (fι a)) (fA a)))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (fun (_x : A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (AddCommMonoid.toAddMonoid.{u1} (A (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (_inst_2 (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (List.dProdIndex.{u2, 0} ι (Fin n) _inst_3 (List.finRange n) fι)) (List.dProd.{u2, 0, u1} ι (Fin n) A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4) (List.finRange n) fι fA))
+Case conversion may be inaccurate. Consider using '#align direct_sum.list_prod_of_fn_of_eq_dprod DirectSum.list_prod_ofFn_of_eq_dProdₓ'. -/
theorem list_prod_ofFn_of_eq_dProd (n : ℕ) (fι : Fin n → ι) (fA : ∀ a, A (fι a)) :
(List.ofFn fun a => of A (fι a) (fA a)).Prod = of A _ ((List.finRange n).dProd fι fA) := by
rw [List.ofFn_eq_map, of_list_dprod]
@@ -290,6 +378,7 @@ theorem list_prod_ofFn_of_eq_dProd (n : ℕ) (fι : Fin n → ι) (fA : ∀ a, A
open BigOperators
+#print DirectSum.mul_eq_dfinsupp_sum /-
theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
a * a' = a.Sum fun i ai => a'.Sum fun j aj => DirectSum.of _ _ <| GradedMonoid.GMul.mul ai aj :=
by
@@ -297,8 +386,10 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
simpa only [MulHom, to_add_monoid, Dfinsupp.liftAddHom_apply, Dfinsupp.sumAddHom_apply,
AddMonoidHom.dfinsupp_sum_apply, flip_apply, AddMonoidHom.dfinsupp_sumAddHom_apply]
#align direct_sum.mul_eq_dfinsupp_sum DirectSum.mul_eq_dfinsupp_sum
+-/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print DirectSum.mul_eq_sum_support_ghas_mul /-
/-- A heavily unfolded version of the definition of multiplication -/
theorem mul_eq_sum_support_ghas_mul [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
a * a' =
@@ -306,21 +397,27 @@ theorem mul_eq_sum_support_ghas_mul [∀ (i : ι) (x : A i), Decidable (x ≠ 0)
DirectSum.of _ _ (GradedMonoid.GMul.mul (a ij.fst) (a' ij.snd)) :=
by simp only [mul_eq_dfinsupp_sum, Dfinsupp.sum, Finset.sum_product]
#align direct_sum.mul_eq_sum_support_ghas_mul DirectSum.mul_eq_sum_support_ghas_mul
+-/
end Semiring
section CommSemiring
-variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GcommSemiring A]
+variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
-private theorem mul_comm (a b : ⨁ i, A i) : a * b = b * a :=
+/- warning: direct_sum.mul_comm clashes with [anonymous] -> [anonymous]
+Case conversion may be inaccurate. Consider using '#align direct_sum.mul_comm [anonymous]ₓ'. -/
+#print [anonymous] /-
+private theorem [anonymous] (a b : ⨁ i, A i) : a * b = b * a :=
by
suffices mulHom A = (mulHom A).flip from AddMonoidHom.congr_fun (AddMonoidHom.congr_fun this a) b
apply add_hom_ext; intro ai ax; apply add_hom_ext; intro bi bx
rw [AddMonoidHom.flip_apply, mul_hom_of_of, mul_hom_of_of]
exact of_eq_of_graded_monoid_eq (gcomm_semiring.mul_comm ⟨ai, ax⟩ ⟨bi, bx⟩)
-#align direct_sum.mul_comm direct_sum.mul_comm
+#align direct_sum.mul_comm [anonymous]
+-/
+#print DirectSum.commSemiring /-
/-- The `comm_semiring` structure derived from `gcomm_semiring A`. -/
instance commSemiring : CommSemiring (⨁ i, A i) :=
{ DirectSum.semiring _ with
@@ -330,13 +427,15 @@ instance commSemiring : CommSemiring (⨁ i, A i) :=
add := (· + ·)
mul_comm := mul_comm A }
#align direct_sum.comm_semiring DirectSum.commSemiring
+-/
end CommSemiring
section NonUnitalNonAssocRing
-variable [∀ i, AddCommGroup (A i)] [Add ι] [GnonUnitalNonAssocSemiring A]
+variable [∀ i, AddCommGroup (A i)] [Add ι] [GNonUnitalNonAssocSemiring A]
+#print DirectSum.nonAssocRing /-
/-- The `ring` derived from `gsemiring A`. -/
instance nonAssocRing : NonUnitalNonAssocRing (⨁ i, A i) :=
{ DirectSum.nonUnitalNonAssocSemiring _,
@@ -346,13 +445,15 @@ instance nonAssocRing : NonUnitalNonAssocRing (⨁ i, A i) :=
add := (· + ·)
neg := Neg.neg }
#align direct_sum.non_assoc_ring DirectSum.nonAssocRing
+-/
end NonUnitalNonAssocRing
section Ring
-variable [∀ i, AddCommGroup (A i)] [AddMonoid ι] [Gring A]
+variable [∀ i, AddCommGroup (A i)] [AddMonoid ι] [GRing A]
+#print DirectSum.ring /-
/-- The `ring` derived from `gsemiring A`. -/
instance ring : Ring (⨁ i, A i) :=
{ DirectSum.semiring _,
@@ -362,18 +463,20 @@ instance ring : Ring (⨁ i, A i) :=
zero := 0
add := (· + ·)
neg := Neg.neg
- intCast := fun z => of _ _ (Gring.intCast z)
- intCast_ofNat := fun z => congr_arg _ <| Gring.intCast_of_nat _
+ intCast := fun z => of _ _ (GRing.intCast z)
+ intCast_ofNat := fun z => congr_arg _ <| GRing.intCast_of_nat _
intCast_negSucc := fun z =>
- (congr_arg _ <| Gring.intCast_neg_succ_of_nat _).trans (map_neg _ _) }
+ (congr_arg _ <| GRing.intCast_neg_succ_of_nat _).trans (map_neg _ _) }
#align direct_sum.ring DirectSum.ring
+-/
end Ring
section CommRing
-variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GcommRing A]
+variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GCommRing A]
+#print DirectSum.commRing /-
/-- The `comm_ring` derived from `gcomm_semiring A`. -/
instance commRing : CommRing (⨁ i, A i) :=
{ DirectSum.ring _,
@@ -384,6 +487,7 @@ instance commRing : CommRing (⨁ i, A i) :=
add := (· + ·)
neg := Neg.neg }
#align direct_sum.comm_ring DirectSum.commRing
+-/
end CommRing
@@ -400,6 +504,12 @@ section One
variable [Zero ι] [GradedMonoid.GOne A] [∀ i, AddCommMonoid (A i)]
+/- warning: direct_sum.of_zero_one -> DirectSum.of_zero_one is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : Zero.{u1} ι] [_inst_3 : GradedMonoid.GOne.{u1, u2} ι A _inst_2] [_inst_4 : forall (i : ι), AddCommMonoid.{u2} (A i)], Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (_inst_4 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (_inst_4 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (_inst_4 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_4 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι _inst_2)))) (OfNat.ofNat.{u2} (A (Zero.zero.{u1} ι _inst_2)) 1 (OfNat.mk.{u2} (A (Zero.zero.{u1} ι _inst_2)) 1 (One.one.{u2} (A (Zero.zero.{u1} ι _inst_2)) (GradedMonoid.GradeZero.one.{u1, u2} ι A _inst_2 _inst_3))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) 1 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) 1 (One.one.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (DirectSum.hasOne.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 _inst_3 (fun (i : ι) => _inst_4 i)))))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : Zero.{u2} ι] [_inst_3 : GradedMonoid.GOne.{u2, u1} ι A _inst_2] [_inst_4 : forall (i : ι), AddCommMonoid.{u1} (A i)], Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2)))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (_inst_4 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_4 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) (OfNat.ofNat.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) 1 (One.toOfNat1.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_4 i)) (OfNat.ofNat.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) 1 (One.toOfNat1.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι _inst_2))) (GradedMonoid.GradeZero.one.{u2, u1} ι A _inst_2 _inst_3)))) (DirectSum.instOneDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_2 _inst_3 (fun (i : ι) => _inst_4 i))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_one DirectSum.of_zero_oneₓ'. -/
@[simp]
theorem of_zero_one : of _ 0 (1 : A 0) = 1 :=
rfl
@@ -409,35 +519,57 @@ end One
section Mul
-variable [AddZeroClass ι] [∀ i, AddCommMonoid (A i)] [GnonUnitalNonAssocSemiring A]
+variable [AddZeroClass ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
+/- warning: direct_sum.of_zero_smul -> DirectSum.of_zero_smul is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddZeroClass.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i)] {i : ι} (a : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (b : A i), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) (SMul.smul.{u2, u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (A i) (GradedMonoid.GradeZero.smul.{u1, u2} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4) i) a b)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) b))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : AddZeroClass.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i)] {i : ι} (a : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (b : A i), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (HSMul.hSMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (A i) (instHSMul.{u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (GradedMonoid.GradeZero.smul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4) i)) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) (HSMul.hSMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (A i) (instHSMul.{u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A i) (GradedMonoid.GradeZero.smul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4) i)) a b)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A i) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A i) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A i) (AddCommMonoid.toAddMonoid.{u1} (A i) (_inst_3 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) i) b))
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_smul DirectSum.of_zero_smulₓ'. -/
@[simp]
theorem of_zero_smul {i} (a : A 0) (b : A i) : of _ _ (a • b) = of _ _ a * of _ _ b :=
(of_eq_of_gradedMonoid_eq (GradedMonoid.mk_zero_smul a b)).trans (of_mul_of _ _).symm
#align direct_sum.of_zero_smul DirectSum.of_zero_smul
+/- warning: direct_sum.of_zero_mul -> DirectSum.of_zero_mul is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : AddZeroClass.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i)] (a : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (b : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (HMul.hMul.{u2, u2, u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (instHMul.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (GradedMonoid.GradeZero.mul.{u1, u2} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) a b)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4)))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) a) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) (_inst_3 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι _inst_2))))) b))
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : AddZeroClass.{u2} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_4 : DirectSum.GNonUnitalNonAssocSemiring.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i)] (a : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (b : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (HMul.hMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (instHMul.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (GradedMonoid.GradeZero.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) a b)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (HMul.hMul.{u1, u1, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (instHMul.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (GradedMonoid.GradeZero.mul.{u2, u1} ι A _inst_2 (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u2, u1} ι A (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) a b)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) b) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) a) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toAdd.{u2} ι _inst_2) (fun (i : ι) => _inst_3 i) _inst_4))) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) a) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2))))))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u2, u1, max u1 u2} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) (_inst_3 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_3 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddZeroClass.toZero.{u2} ι _inst_2)))) b))
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_mul DirectSum.of_zero_mulₓ'. -/
@[simp]
theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b :=
of_zero_smul A a b
#align direct_sum.of_zero_mul DirectSum.of_zero_mul
+#print DirectSum.GradeZero.nonUnitalNonAssocSemiring /-
instance GradeZero.nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (A 0) :=
Function.Injective.nonUnitalNonAssocSemiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero
(of A 0).map_add (of_zero_mul A) fun x n => Dfinsupp.single_smul n x
#align direct_sum.grade_zero.non_unital_non_assoc_semiring DirectSum.GradeZero.nonUnitalNonAssocSemiring
+-/
+#print DirectSum.GradeZero.smulWithZero /-
instance GradeZero.smulWithZero (i : ι) : SMulWithZero (A 0) (A i) :=
by
letI := SMulWithZero.compHom (⨁ i, A i) (of A 0).toZeroHom
refine' dfinsupp.single_injective.smul_with_zero (of A i).toZeroHom (of_zero_smul A)
#align direct_sum.grade_zero.smul_with_zero DirectSum.GradeZero.smulWithZero
+-/
end Mul
section Semiring
-variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [Gsemiring A]
+variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
+/- warning: direct_sum.of_zero_pow -> DirectSum.of_zero_pow is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (a : A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (n : Nat), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (HPow.hPow.{u2, 0, u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (instHPow.{u2, 0} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) Nat (GradedMonoid.Nat.hasPow.{u1, u2} ι A _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) a n)) (HPow.hPow.{max u1 u2, 0, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instHPow.{max u1 u2, 0} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) Nat (Monoid.Pow.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (MonoidWithZero.toMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toMonoidWithZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) a) n)
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (a : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (n : Nat), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (HPow.hPow.{u1, 0, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (instHPow.{u1, 0} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (GradedMonoid.instPowOfNatToOfNat0ToZeroNat.{u2, u1} ι A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) a n)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (HPow.hPow.{u1, 0, u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (instHPow.{u1, 0} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) Nat (GradedMonoid.instPowOfNatToOfNat0ToZeroNat.{u2, u1} ι A _inst_3 (DirectSum.GSemiring.toGMonoid.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) a n)) (HPow.hPow.{max u2 u1, 0, max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (instHPow.{max u2 u1, 0} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) Nat (Monoid.Pow.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (MonoidWithZero.toMonoid.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (Semiring.toMonoidWithZero.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (DirectSum.semiring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) a) n)
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_zero_pow DirectSum.of_zero_powₓ'. -/
@[simp]
theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
| 0 => by rw [pow_zero, pow_zero, DirectSum.of_zero_one]
@@ -445,27 +577,37 @@ theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of _ 0 (a ^ n) = of _ 0 a ^ n
#align direct_sum.of_zero_pow DirectSum.of_zero_pow
instance : NatCast (A 0) :=
- ⟨Gsemiring.natCast⟩
-
+ ⟨GSemiring.natCast⟩
+
+/- warning: direct_sum.of_nat_cast -> DirectSum.ofNatCast is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (HasLiftT.mk.{1, succ u2} Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (CoeTCₓ.coe.{1, succ u2} Nat (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (Nat.castCoe.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.hasNatCast.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) n)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (HasLiftT.mk.{1, succ (max u1 u2)} Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Nat (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Nat.castCoe.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidWithOne.toNatCast.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)))))))) n)
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommMonoid.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Nat), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Nat.cast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Semiring.toNatCast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Nat.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instNatCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (DirectSum.semiring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) n)
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_nat_cast DirectSum.ofNatCastₓ'. -/
@[simp]
-theorem of_nat_cast (n : ℕ) : of A 0 n = n :=
+theorem ofNatCast (n : ℕ) : of A 0 n = n :=
rfl
-#align direct_sum.of_nat_cast DirectSum.of_nat_cast
+#align direct_sum.of_nat_cast DirectSum.ofNatCast
+#print DirectSum.GradeZero.semiring /-
/-- The `semiring` structure derived from `gsemiring A`. -/
instance GradeZero.semiring : Semiring (A 0) :=
Function.Injective.semiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
- (of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun x n => of_zero_pow _ _ _)
- (of_nat_cast A)
+ (of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun x n => of_zero_pow _ _ _) (ofNatCast A)
#align direct_sum.grade_zero.semiring DirectSum.GradeZero.semiring
+-/
+#print DirectSum.ofZeroRingHom /-
/-- `of A 0` is a `ring_hom`, using the `direct_sum.grade_zero.semiring` structure. -/
def ofZeroRingHom : A 0 →+* ⨁ i, A i :=
{ of _ 0 with
map_one' := of_zero_one A
map_mul' := of_zero_mul A }
#align direct_sum.of_zero_ring_hom DirectSum.ofZeroRingHom
+-/
+#print DirectSum.GradeZero.module /-
/-- Each grade `A i` derives a `A 0`-module structure from `gsemiring A`. Note that this results
in an overall `module (A 0) (⨁ i, A i)` structure via `direct_sum.module`.
-/
@@ -473,26 +615,30 @@ instance GradeZero.module {i} : Module (A 0) (A i) :=
letI := Module.compHom (⨁ i, A i) (of_zero_ring_hom A)
dfinsupp.single_injective.module (A 0) (of A i) fun a => of_zero_smul A a
#align direct_sum.grade_zero.module DirectSum.GradeZero.module
+-/
end Semiring
section CommSemiring
-variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GcommSemiring A]
+variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
+#print DirectSum.GradeZero.commSemiring /-
/-- The `comm_semiring` structure derived from `gcomm_semiring A`. -/
instance GradeZero.commSemiring : CommSemiring (A 0) :=
Function.Injective.commSemiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero
(of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => Dfinsupp.single_smul n x)
- (fun x n => of_zero_pow _ _ _) (of_nat_cast A)
+ (fun x n => of_zero_pow _ _ _) (ofNatCast A)
#align direct_sum.grade_zero.comm_semiring DirectSum.GradeZero.commSemiring
+-/
end CommSemiring
section Ring
-variable [∀ i, AddCommGroup (A i)] [AddZeroClass ι] [GnonUnitalNonAssocSemiring A]
+variable [∀ i, AddCommGroup (A i)] [AddZeroClass ι] [GNonUnitalNonAssocSemiring A]
+#print DirectSum.GradeZero.nonUnitalNonAssocRing /-
/-- The `non_unital_non_assoc_ring` derived from `gnon_unital_non_assoc_semiring A`. -/
instance GradeZero.nonUnitalNonAssocRing : NonUnitalNonAssocRing (A 0) :=
Function.Injective.nonUnitalNonAssocRing (of A 0) Dfinsupp.single_injective (of A 0).map_zero
@@ -504,21 +650,29 @@ instance GradeZero.nonUnitalNonAssocRing : NonUnitalNonAssocRing (A 0) :=
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
Dfinsupp.single_smul n x
#align direct_sum.grade_zero.non_unital_non_assoc_ring DirectSum.GradeZero.nonUnitalNonAssocRing
+-/
end Ring
section Ring
-variable [∀ i, AddCommGroup (A i)] [AddMonoid ι] [Gring A]
+variable [∀ i, AddCommGroup (A i)] [AddMonoid ι] [GRing A]
instance : IntCast (A 0) :=
- ⟨Gring.intCast⟩
-
+ ⟨GRing.intCast⟩
+
+/- warning: direct_sum.of_int_cast -> DirectSum.ofIntCast is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] (A : ι -> Type.{u2}) [_inst_2 : forall (i : ι), AddCommGroup.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GRing.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Int), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (HasLiftT.mk.{1, succ u2} Int (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (CoeTCₓ.coe.{1, succ u2} Int (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (Int.castCoe.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (DirectSum.hasIntCast.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) n)) ((fun (a : Type) (b : Type.{max u1 u2}) [self : HasLiftT.{1, succ (max u1 u2)} a b] => self.0) Int (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (HasLiftT.mk.{1, succ (max u1 u2)} Int (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (CoeTCₓ.coe.{1, succ (max u1 u2)} Int (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (Int.castCoe.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddGroupWithOne.toHasIntCast.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (AddCommGroupWithOne.toAddGroupWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (Ring.toAddCommGroupWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} (A i) (_inst_2 i)) i)) (DirectSum.ring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))))))) n)
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] (A : ι -> Type.{u1}) [_inst_2 : forall (i : ι), AddCommGroup.{u1} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GRing.{u2, u1} ι A _inst_3 (fun (i : ι) => _inst_2 i)] (n : Int), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddZeroClass.toAdd.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))) (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (AddCommGroup.toAddCommMonoid.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3))))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i)) (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Int.cast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (Ring.toIntCast.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) => DirectSum.{u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u1} (A i) (_inst_2 i))) (Int.cast.{u1} (A (OfNat.ofNat.{u2} ι 0 (Zero.toOfNat0.{u2} ι (AddMonoid.toZero.{u2} ι _inst_3)))) (DirectSum.instIntCastOfNatToOfNat0ToZero.{u2, u1} ι A (fun (i : ι) => _inst_2 i) _inst_3 _inst_4) n)) (DirectSum.ring.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) n)
+Case conversion may be inaccurate. Consider using '#align direct_sum.of_int_cast DirectSum.ofIntCastₓ'. -/
@[simp]
-theorem of_int_cast (n : ℤ) : of A 0 n = n :=
+theorem ofIntCast (n : ℤ) : of A 0 n = n :=
rfl
-#align direct_sum.of_int_cast DirectSum.of_int_cast
+#align direct_sum.of_int_cast DirectSum.ofIntCast
+#print DirectSum.GradeZero.ring /-
/-- The `ring` derived from `gsemiring A`. -/
instance GradeZero.ring : Ring (A 0) :=
Function.Injective.ring (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
@@ -529,15 +683,17 @@ instance GradeZero.ring : Ring (A 0) :=
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
Dfinsupp.single_smul n x)
- (fun x n => of_zero_pow _ _ _) (of_nat_cast A) (of_int_cast A)
+ (fun x n => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
#align direct_sum.grade_zero.ring DirectSum.GradeZero.ring
+-/
end Ring
section CommRing
-variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GcommRing A]
+variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GCommRing A]
+#print DirectSum.GradeZero.commRing /-
/-- The `comm_ring` derived from `gcomm_semiring A`. -/
instance GradeZero.commRing : CommRing (A 0) :=
Function.Injective.commRing (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
@@ -548,8 +704,9 @@ instance GradeZero.commRing : CommRing (A 0) :=
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun i => inferInstance
Dfinsupp.single_smul n x)
- (fun x n => of_zero_pow _ _ _) (of_nat_cast A) (of_int_cast A)
+ (fun x n => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
#align direct_sum.grade_zero.comm_ring DirectSum.GradeZero.commRing
+-/
end CommRing
@@ -557,10 +714,16 @@ end GradeZero
section ToSemiring
-variable {R : Type _} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [Gsemiring A] [Semiring R]
+variable {R : Type _} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A] [Semiring R]
variable {A}
+/- warning: direct_sum.ring_hom_ext' -> DirectSum.ringHom_ext' is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] {{F : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}} {{G : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}}, (forall (i : ι), Eq.{max (succ u3) (succ u2)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.comp.{u2, max u1 u2, u3} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5) (RingHom.ringHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) F) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.comp.{u2, max u1 u2, u3} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5) (RingHom.ringHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) G) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) F G)
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u3}} {R : Type.{u1}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u1} R] {{F : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}} {{G : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}}, (forall (i : ι), Eq.{max (succ u3) (succ u1)} (AddMonoidHom.{u3, u1} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)))))) (AddMonoidHom.comp.{u3, max u2 u3, u1} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (AddMonoidHomClass.toAddMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))) F) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.comp.{u3, max u2 u3, u1} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (AddMonoidHomClass.toAddMonoidHom.{max u2 u3, u1, max (max u2 u3) u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{u1} R (AddMonoidWithOne.toAddMonoid.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))) G) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) F G)
+Case conversion may be inaccurate. Consider using '#align direct_sum.ring_hom_ext' DirectSum.ringHom_ext'ₓ'. -/
/-- If two ring homomorphisms from `⨁ i, A i` are equal on each `of A i y`,
then they are equal.
@@ -571,11 +734,18 @@ theorem ringHom_ext' ⦃F G : (⨁ i, A i) →+* R⦄
RingHom.coe_addMonoidHom_injective <| DirectSum.addHom_ext' h
#align direct_sum.ring_hom_ext' DirectSum.ringHom_ext'
+/- warning: direct_sum.ring_hom_ext -> DirectSum.ringHom_ext is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] {{f : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}} {{g : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)}}, (forall (i : ι) (x : A i), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) f (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) g (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x))) -> (Eq.{max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) f g)
+but is expected to have type
+ forall {ι : Type.{u2}} [_inst_1 : DecidableEq.{succ u2} ι] {A : ι -> Type.{u3}} {R : Type.{u1}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u2} ι] [_inst_4 : DirectSum.GSemiring.{u2, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u1} R] {{f : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}} {{g : RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)}}, (forall (i : ι) (x : A i), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u1), max (succ u2) (succ u3), succ u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u2 u3) u1, max u2 u3, u1} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5) (RingHom.instRingHomClassRingHom.{max u2 u3, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5))))) g (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u2 u3, u3, max u2 u3} (AddMonoidHom.{u3, max u3 u2} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u2 u3} (A i) (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u1)} (RingHom.{max u3 u2, u1} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u1} R _inst_5)) f g)
+Case conversion may be inaccurate. Consider using '#align direct_sum.ring_hom_ext DirectSum.ringHom_extₓ'. -/
/-- Two `ring_hom`s out of a direct sum are equal if they agree on the generators. -/
theorem ringHom_ext ⦃f g : (⨁ i, A i) →+* R⦄ (h : ∀ i x, f (of A i x) = g (of A i x)) : f = g :=
ringHom_ext' fun i => AddMonoidHom.ext <| h i
#align direct_sum.ring_hom_ext DirectSum.ringHom_ext
+#print DirectSum.toSemiring /-
/-- A family of `add_monoid_hom`s preserving `direct_sum.ghas_one.one` and `direct_sum.ghas_mul.mul`
describes a `ring_hom`s on `⨁ i, A i`. This is a stronger version of `direct_sum.to_monoid`.
@@ -602,19 +772,33 @@ def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
rw [of_mul_of, to_add_monoid_of, to_add_monoid_of, to_add_monoid_of]
exact hmul _ _ }
#align direct_sum.to_semiring DirectSum.toSemiring
+-/
+/- warning: direct_sum.to_semiring_of -> DirectSum.toSemiring_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] (f : forall (i : ι), AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (hone : Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (GradedMonoid.GOne.one.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) ai) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A j) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f j) aj))) (i : ι) (x : A i), Eq.{succ u3} R (coeFn.{max (succ (max u1 u2)) (succ u3), max (succ (max u1 u2)) (succ u3)} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (fun (_x : RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) => (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) -> R) (RingHom.hasCoeToFun.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => (fun (i : ι) => A i) i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.toSemiring.{u1, u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) i) x)) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) x)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u3}} {R : Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u2} R] (f : forall (i : ι), AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (hone : Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddZeroClass.toAdd.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3))))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) _inst_5)))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (fun (_x : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddZeroClass.toAdd.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) aj) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) _inst_5)))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) ai) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddZeroClass.toAdd.{u3} (A j) (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f j) aj))) (i : ι) (x : A i), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (max (succ u1) (succ u3)) (succ u2), max (succ u1) (succ u3), succ u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => R) _x) (MulHomClass.toFunLike.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonUnitalNonAssocSemiring.toMul.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))) (NonUnitalNonAssocSemiring.toMul.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))) (NonUnitalRingHomClass.toMulHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (RingHomClass.toNonUnitalRingHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5) (RingHom.instRingHomClassRingHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (DirectSum.toSemiring.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (A i) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) x)
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_semiring_of DirectSum.toSemiring_ofₓ'. -/
@[simp]
theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
toSemiring f hone hmul (of _ i x) = f _ x :=
toAddMonoid_of f i x
#align direct_sum.to_semiring_of DirectSum.toSemiring_of
+/- warning: direct_sum.to_semiring_coe_add_monoid_hom -> DirectSum.toSemiring_coe_addMonoidHom is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u2}} {R : Type.{u3}} [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u3} R] (f : forall (i : ι), AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (hone : Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) R (AddMonoid.toAddZeroClass.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (AddCommMonoid.toAddMonoid.{u2} (A (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (OfNat.ofNat.{u1} ι 0 (OfNat.mk.{u1} ι 0 (Zero.zero.{u1} ι (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)))))) (GradedMonoid.GOne.one.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasZero.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (GradedMonoid.GMonoid.toGhasOne.{u1, u2} ι (fun (i : ι) => A i) _inst_3 (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)))) (OfNat.ofNat.{u3} R 1 (OfNat.mk.{u3} R 1 (One.one.{u3} R (AddMonoidWithOne.toOne.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u3} R (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u2} ι (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGhasMul.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGnonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u3, u3, u3} R R R (instHMul.{u3} R (Distrib.toHasMul.{u3} R (NonUnitalNonAssocSemiring.toDistrib.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A i) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A i) R (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f i) ai) (coeFn.{max (succ u3) (succ u2), max (succ u2) (succ u3)} (AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (fun (_x : AddMonoidHom.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) => (A j) -> R) (AddMonoidHom.hasCoeToFun.{u2, u3} (A j) R (AddMonoid.toAddZeroClass.{u2} (A j) (AddCommMonoid.toAddMonoid.{u2} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (f j) aj))), Eq.{max (succ u3) (succ (max u1 u2))} (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) ((fun (a : Sort.{max (succ (max u1 u2)) (succ u3)}) (b : Sort.{max (succ u3) (succ (max u1 u2))}) [self : HasLiftT.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} a b] => self.0) (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (HasLiftT.mk.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (CoeTCₓ.coe.{max (succ (max u1 u2)) (succ u3), max (succ u3) (succ (max u1 u2))} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoidHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (AddMonoidHom.hasCoeT.{max u1 u2, u3, max (max u1 u2) u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u3} R (AddMonoidWithOne.toAddMonoid.{u3} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u3} R (NonAssocSemiring.toAddCommMonoidWithOne.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u2) u3, max u1 u2, u3} (RingHom.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5) (RingHom.ringHomClass.{max u1 u2, u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u3} R _inst_5)))))) (DirectSum.toSemiring.{u1, u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul)) (DirectSum.toAddMonoid.{u1, u2, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_5))) f)
+but is expected to have type
+ forall {ι : Type.{u1}} [_inst_1 : DecidableEq.{succ u1} ι] {A : ι -> Type.{u3}} {R : Type.{u2}} [_inst_2 : forall (i : ι), AddCommMonoid.{u3} (A i)] [_inst_3 : AddMonoid.{u1} ι] [_inst_4 : DirectSum.GSemiring.{u1, u3} ι A _inst_3 (fun (i : ι) => _inst_2 i)] [_inst_5 : Semiring.{u2} R] (f : forall (i : ι), AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (hone : Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (fun (_x : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddZeroClass.toAdd.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3))))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) R (AddMonoid.toAddZeroClass.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (AddCommMonoid.toAddMonoid.{u3} (A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (_inst_2 (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (OfNat.ofNat.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) 1 (One.toOfNat1.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) (Semiring.toOne.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (OfNat.ofNat.{u1} ι 0 (Zero.toOfNat0.{u1} ι (AddMonoid.toZero.{u1} ι _inst_3)))) => R) (GradedMonoid.GOne.one.{u1, u3} ι (fun (i : ι) => A i) (AddMonoid.toZero.{u1} ι _inst_3) (DirectSum.GSemiring.toGOne.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4))) _inst_5)))) (hmul : forall {i : ι} {j : ι} (ai : A i) (aj : A j), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (fun (_x : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddZeroClass.toAdd.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j))))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) R (AddMonoid.toAddZeroClass.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (AddCommMonoid.toAddMonoid.{u3} (A (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (_inst_2 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3))) i j)) (GradedMonoid.GMul.mul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (DirectSum.GNonUnitalNonAssocSemiring.toGMul.{u1, u3} ι (fun (i : ι) => A i) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_3)) (fun (i : ι) => _inst_2 i) (DirectSum.GSemiring.toGNonUnitalNonAssocSemiring.{u1, u3} ι (fun (i : ι) => A i) _inst_3 (fun (i : ι) => _inst_2 i) _inst_4)) i j ai aj)) (HMul.hMul.{u2, u2, u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) aj) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (instHMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonUnitalNonAssocSemiring.toMul.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) ai) _inst_5)))) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddZeroClass.toAdd.{u3} (A i) (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A i) R (AddMonoid.toAddZeroClass.{u3} (A i) (AddCommMonoid.toAddMonoid.{u3} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f i) ai) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) (fun (_x : A j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A j) => R) _x) (AddHomClass.toFunLike.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddZeroClass.toAdd.{u3} (A j) (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j)))) (AddZeroClass.toAdd.{u2} R (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u3, u2} (AddMonoidHom.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (AddMonoidHom.addMonoidHomClass.{u3, u2} (A j) R (AddMonoid.toAddZeroClass.{u3} (A j) (AddCommMonoid.toAddMonoid.{u3} (A j) (_inst_2 j))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))))) (f j) aj))), Eq.{max (max (succ u1) (succ u3)) (succ u2)} (AddMonoidHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5)))))) (AddMonoidHomClass.toAddMonoidHom.{max u1 u3, u2, max (max u1 u3) u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidWithOne.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoidWithOne.toAddMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (NonAssocSemiring.toAddCommMonoidWithOne.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)))))) (AddMonoid.toAddZeroClass.{u2} R (AddMonoidWithOne.toAddMonoid.{u2} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} R (NonAssocSemiring.toAddCommMonoidWithOne.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))))) (RingHomClass.toAddMonoidHomClass.{max (max u1 u3) u2, max u1 u3, u2} (RingHom.{max u3 u1, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5)) (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5) (RingHom.instRingHomClassRingHom.{max u1 u3, u2} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) R (Semiring.toNonAssocSemiring.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) _inst_3 _inst_4)) (Semiring.toNonAssocSemiring.{u2} R _inst_5))) (DirectSum.toSemiring.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) R (fun (i : ι) => _inst_2 i) _inst_3 _inst_4 _inst_5 f hone hmul)) (DirectSum.toAddMonoid.{u1, u3, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i) R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_5))) f)
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_semiring_coe_add_monoid_hom DirectSum.toSemiring_coe_addMonoidHomₓ'. -/
@[simp]
theorem toSemiring_coe_addMonoidHom (f : ∀ i, A i →+ R) (hone hmul) :
(toSemiring f hone hmul : (⨁ i, A i) →+ R) = toAddMonoid f :=
rfl
#align direct_sum.to_semiring_coe_add_monoid_hom DirectSum.toSemiring_coe_addMonoidHom
+#print DirectSum.liftRingHom /-
/-- Families of `add_monoid_hom`s preserving `direct_sum.ghas_one.one` and `direct_sum.ghas_mul.mul`
are isomorphic to `ring_hom`s on `⨁ i, A i`. This is a stronger version of `dfinsupp.lift_add_hom`.
-/
@@ -644,6 +828,7 @@ def liftRingHom :
simp only [RingHom.coe_addMonoidHom_mk, DirectSum.toAddMonoid_of, AddMonoidHom.mk_coe,
AddMonoidHom.comp_apply, to_semiring_coe_add_monoid_hom]
#align direct_sum.lift_ring_hom DirectSum.liftRingHom
+-/
end ToSemiring
@@ -656,25 +841,37 @@ section Uniform
variable (ι)
+/- warning: non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring -> NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring is a dubious translation:
+lean 3 declaration is
+ forall (ι : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u2}} [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : NonUnitalNonAssocSemiring.{u2} R], DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => R) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R _inst_3)
+but is expected to have type
+ forall (ι : Type.{u1}) {_inst_1 : Type.{u2}} [R : AddMonoid.{u1} ι] [_inst_2 : NonUnitalNonAssocSemiring.{u2} _inst_1], DirectSum.GNonUnitalNonAssocSemiring.{u1, u2} ι (fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6396 : ι) => _inst_1) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι R)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6396 : ι) => _inst_1) i) _inst_2)
+Case conversion may be inaccurate. Consider using '#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiringₓ'. -/
/-- A direct sum of copies of a `semiring` inherits the multiplication structure. -/
-instance NonUnitalNonAssocSemiring.directSumGnonUnitalNonAssocSemiring {R : Type _} [AddMonoid ι]
- [NonUnitalNonAssocSemiring R] : DirectSum.GnonUnitalNonAssocSemiring fun i : ι => R :=
+instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type _} [AddMonoid ι]
+ [NonUnitalNonAssocSemiring R] : DirectSum.GNonUnitalNonAssocSemiring fun i : ι => R :=
{ Mul.gMul ι with
mul_zero := fun i j => MulZeroClass.mul_zero
zero_mul := fun i j => MulZeroClass.zero_mul
mul_add := fun i j => mul_add
add_mul := fun i j => add_mul }
-#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGnonUnitalNonAssocSemiring
-
+#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring
+
+/- warning: semiring.direct_sum_gsemiring -> Semiring.directSumGSemiring is a dubious translation:
+lean 3 declaration is
+ forall (ι : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u2}} [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} R], DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => R) _inst_2 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_3)))
+but is expected to have type
+ forall (ι : Type.{u1}) {_inst_1 : Type.{u2}} [R : AddMonoid.{u1} ι] [_inst_2 : Semiring.{u2} _inst_1], DirectSum.GSemiring.{u1, u2} ι (fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) R (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) i) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6437 : ι) => _inst_1) i) _inst_2)))
+Case conversion may be inaccurate. Consider using '#align semiring.direct_sum_gsemiring Semiring.directSumGSemiringₓ'. -/
/-- A direct sum of copies of a `semiring` inherits the multiplication structure. -/
-instance Semiring.directSumGsemiring {R : Type _} [AddMonoid ι] [Semiring R] :
- DirectSum.Gsemiring fun i : ι => R :=
- { NonUnitalNonAssocSemiring.directSumGnonUnitalNonAssocSemiring ι,
+instance Semiring.directSumGSemiring {R : Type _} [AddMonoid ι] [Semiring R] :
+ DirectSum.GSemiring fun i : ι => R :=
+ { NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring ι,
Monoid.gMonoid ι with
natCast := fun n => n
natCast_zero := Nat.cast_zero
natCast_succ := Nat.cast_succ }
-#align semiring.direct_sum_gsemiring Semiring.directSumGsemiring
+#align semiring.direct_sum_gsemiring Semiring.directSumGSemiring
open DirectSum
@@ -683,12 +880,18 @@ example {R : Type _} [AddMonoid ι] [Semiring R] (i j : ι) (a b : R) :
(DirectSum.of _ i a * DirectSum.of _ j b : ⨁ i, R) = DirectSum.of _ (i + j) (a * b) := by
rw [DirectSum.of_mul_of, Mul.gMul_mul]
+/- warning: comm_semiring.direct_sum_gcomm_semiring -> CommSemiring.directSumGCommSemiring is a dubious translation:
+lean 3 declaration is
+ forall (ι : Type.{u1}) [_inst_1 : DecidableEq.{succ u1} ι] {R : Type.{u2}} [_inst_2 : AddCommMonoid.{u1} ι] [_inst_3 : CommSemiring.{u2} R], DirectSum.GCommSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => R) _inst_2 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R (CommSemiring.toSemiring.{u2} R _inst_3))))
+but is expected to have type
+ forall (ι : Type.{u1}) {_inst_1 : Type.{u2}} [R : AddCommMonoid.{u1} ι] [_inst_2 : CommSemiring.{u2} _inst_1], DirectSum.GCommSemiring.{u1, u2} ι (fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) R (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) (Semiring.toNonAssocSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) (CommSemiring.toSemiring.{u2} ((fun (x._@.Mathlib.Algebra.DirectSum.Ring._hyg.6607 : ι) => _inst_1) i) _inst_2))))
+Case conversion may be inaccurate. Consider using '#align comm_semiring.direct_sum_gcomm_semiring CommSemiring.directSumGCommSemiringₓ'. -/
/-- A direct sum of copies of a `comm_semiring` inherits the commutative multiplication structure.
-/
-instance CommSemiring.directSumGcommSemiring {R : Type _} [AddCommMonoid ι] [CommSemiring R] :
- DirectSum.GcommSemiring fun i : ι => R :=
- { CommMonoid.gCommMonoid ι, Semiring.directSumGsemiring ι with }
-#align comm_semiring.direct_sum_gcomm_semiring CommSemiring.directSumGcommSemiring
+instance CommSemiring.directSumGCommSemiring {R : Type _} [AddCommMonoid ι] [CommSemiring R] :
+ DirectSum.GCommSemiring fun i : ι => R :=
+ { CommMonoid.gCommMonoid ι, Semiring.directSumGSemiring ι with }
+#align comm_semiring.direct_sum_gcomm_semiring CommSemiring.directSumGCommSemiring
end Uniform
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -660,8 +660,8 @@ variable (ι)
instance NonUnitalNonAssocSemiring.directSumGnonUnitalNonAssocSemiring {R : Type _} [AddMonoid ι]
[NonUnitalNonAssocSemiring R] : DirectSum.GnonUnitalNonAssocSemiring fun i : ι => R :=
{ Mul.gMul ι with
- mul_zero := fun i j => mul_zero
- zero_mul := fun i j => zero_mul
+ mul_zero := fun i j => MulZeroClass.mul_zero
+ zero_mul := fun i j => MulZeroClass.zero_mul
mul_add := fun i j => mul_add
add_mul := fun i j => add_mul }
#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGnonUnitalNonAssocSemiring
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Purely automatic replacement. If this is in any way controversial; I'm happy to just close this PR.
@@ -112,11 +112,11 @@ variable (A : ι → Type*)
/-- A graded version of `Semiring`. -/
class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
GradedMonoid.GMonoid A where
- /-- The canonical map from ℕ to the zeroth component of a graded semiring.-/
+ /-- The canonical map from ℕ to the zeroth component of a graded semiring. -/
natCast : ℕ → A 0
- /-- The canonical map from ℕ to a graded semiring respects zero.-/
+ /-- The canonical map from ℕ to a graded semiring respects zero. -/
natCast_zero : natCast 0 = 0
- /-- The canonical map from ℕ to a graded semiring respects successors.-/
+ /-- The canonical map from ℕ to a graded semiring respects successors. -/
natCast_succ : ∀ n : ℕ, natCast (n + 1) = natCast n + GradedMonoid.GOne.one
#align direct_sum.gsemiring DirectSum.GSemiring
@@ -127,13 +127,13 @@ class GCommSemiring [AddCommMonoid ι] [∀ i, AddCommMonoid (A i)] extends GSem
/-- A graded version of `Ring`. -/
class GRing [AddMonoid ι] [∀ i, AddCommGroup (A i)] extends GSemiring A where
- /-- The canonical map from ℤ to the zeroth component of a graded ring.-/
+ /-- The canonical map from ℤ to the zeroth component of a graded ring. -/
intCast : ℤ → A 0
/-- The canonical map from ℤ to a graded ring extends the canonical map from ℕ to the underlying
- graded semiring.-/
+ graded semiring. -/
intCast_ofNat : ∀ n : ℕ, intCast n = natCast n
/-- On negative integers, the canonical map from ℤ to a graded ring is the negative extension of
- the canonical map from ℕ to the underlying graded semiring.-/
+ the canonical map from ℕ to the underlying graded semiring. -/
-- Porting note: -(n+1) -> Int.negSucc
intCast_negSucc_ofNat : ∀ n : ℕ, intCast (Int.negSucc n) = -natCast (n + 1 : ℕ)
#align direct_sum.gring DirectSum.GRing
Among other things, change the nsmul
, zsmul
, qsmul
fields to have n
/q
come before x
, because this matches the lemmas we want to write about them. It would be preferrable to perform the same changes to the AddMonoid
/AddGroup
-like typeclasses, but this is impossible with the current to_additive
framework, so instead I have inserted some Function.swap
at the interface between AddMonoid
/AddGroup
and Ring
/Field
.
Reduce the diff of #11203
@@ -432,7 +432,7 @@ theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b :=
instance GradeZero.nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (A 0) :=
Function.Injective.nonUnitalNonAssocSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
- (of A 0).map_add (of_zero_mul A) fun x n => DFinsupp.single_smul n x
+ (of A 0).map_add (of_zero_mul A) (map_nsmul _)
#align direct_sum.grade_zero.non_unital_non_assoc_semiring DirectSum.GradeZero.nonUnitalNonAssocSemiring
instance GradeZero.smulWithZero (i : ι) : SMulWithZero (A 0) (A i) := by
@@ -473,8 +473,8 @@ theorem of_zero_ofNat (n : ℕ) [n.AtLeastTwo] : of A 0 (no_index (OfNat.ofNat n
/-- The `Semiring` structure derived from `GSemiring A`. -/
instance GradeZero.semiring : Semiring (A 0) :=
Function.Injective.semiring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
- (of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun _ _ => of_zero_pow _ _ _)
- (of_natCast A)
+ (of A 0).map_add (of_zero_mul A) (fun _ _ ↦ (of A 0).map_nsmul _ _)
+ (fun _ _ => of_zero_pow _ _ _) (of_natCast A)
#align direct_sum.grade_zero.semiring DirectSum.GradeZero.semiring
/-- `of A 0` is a `RingHom`, using the `DirectSum.GradeZero.semiring` structure. -/
@@ -501,7 +501,7 @@ variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
/-- The `CommSemiring` structure derived from `GCommSemiring A`. -/
instance GradeZero.commSemiring : CommSemiring (A 0) :=
Function.Injective.commSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
- (of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => DFinsupp.single_smul n x)
+ (of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun _ _ ↦ map_nsmul _ _ _)
(fun _ _ => of_zero_pow _ _ _) (of_natCast A)
#align direct_sum.grade_zero.comm_semiring DirectSum.GradeZero.commSemiring
@@ -514,13 +514,8 @@ variable [∀ i, AddCommGroup (A i)] [AddZeroClass ι] [GNonUnitalNonAssocSemiri
/-- The `NonUnitalNonAssocRing` derived from `GNonUnitalNonAssocSemiring A`. -/
instance GradeZero.nonUnitalNonAssocRing : NonUnitalNonAssocRing (A 0) :=
Function.Injective.nonUnitalNonAssocRing (of A 0) DFinsupp.single_injective (of A 0).map_zero
- (of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
- (fun x n =>
- letI : ∀ i, DistribMulAction ℕ (A i) := fun _ => inferInstance
- DFinsupp.single_smul n x)
- fun x n =>
- letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
- DFinsupp.single_smul n x
+ (of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub (fun _ _ ↦ map_nsmul _ _ _)
+ (fun _ _ ↦ map_zsmul _ _ _)
#align direct_sum.grade_zero.non_unital_non_assoc_ring DirectSum.GradeZero.nonUnitalNonAssocRing
end Ring
@@ -540,14 +535,8 @@ theorem of_intCast (n : ℤ) : of A 0 n = n := by
/-- The `Ring` derived from `GSemiring A`. -/
instance GradeZero.ring : Ring (A 0) :=
Function.Injective.ring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
- (of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
- (fun x n =>
- letI : ∀ i, DistribMulAction ℕ (A i) := fun _ => inferInstance
- DFinsupp.single_smul n x)
- (fun x n =>
- letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
- DFinsupp.single_smul n x)
- (fun _ _ => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
+ (of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub (fun _ _ ↦ map_nsmul _ _ _)
+ (fun _ _ ↦ map_zsmul _ _ _) (fun _ _ => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
#align direct_sum.grade_zero.ring DirectSum.GradeZero.ring
end Ring
@@ -559,14 +548,8 @@ variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GCommRing A]
/-- The `CommRing` derived from `GCommSemiring A`. -/
instance GradeZero.commRing : CommRing (A 0) :=
Function.Injective.commRing (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
- (of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
- (fun x n =>
- letI : ∀ i, DistribMulAction ℕ (A i) := fun _ => inferInstance
- DFinsupp.single_smul n x)
- (fun x n =>
- letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
- DFinsupp.single_smul n x)
- (fun _ _ => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
+ (of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub (fun _ _ ↦ map_nsmul _ _ _)
+ (fun _ _ ↦ map_zsmul _ _ _) (fun _ _ => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
#align direct_sum.grade_zero.comm_ring DirectSum.GradeZero.commRing
end CommRing
We change the following field in the definition of an additive commutative monoid:
nsmul_succ : ∀ (n : ℕ) (x : G),
- AddMonoid.nsmul (n + 1) x = x + AddMonoid.nsmul n x
+ AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
where the latter is more natural
We adjust the definitions of ^
in monoids, groups, etc.
Originally there was a warning comment about why this natural order was preferred
use
x * npowRec n x
and notnpowRec n x * x
in the definition to make sure that definitional unfolding ofnpowRec
is blocked, to avoid deep recursion issues.
but it seems to no longer apply.
Remarks on the PR :
pow_succ
and pow_succ'
have switched their meanings.Ideal.IsPrime.mul_mem_pow
which is defined in [Mathlib/RingTheory/DedekindDomain/Ideal.lean]. Changing the order of operation forced me to add the symmetric lemma Ideal.IsPrime.mem_pow_mul
.@@ -284,7 +284,7 @@ theorem ofPow {i} (a : A i) (n : ℕ) :
of _ i a ^ n = of _ (n • i) (GradedMonoid.GMonoid.gnpow _ a) := by
induction' n with n n_ih
· exact of_eq_of_gradedMonoid_eq (pow_zero <| GradedMonoid.mk _ a).symm
- · rw [pow_succ, n_ih, of_mul_of a]
+ · rw [pow_succ, n_ih, of_mul_of]
exact of_eq_of_gradedMonoid_eq (pow_succ (GradedMonoid.mk _ a) n).symm
#align direct_sum.of_pow DirectSum.ofPow
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -576,7 +576,6 @@ end GradeZero
section ToSemiring
variable {R : Type*} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A] [Semiring R]
-
variable {A}
/-- If two ring homomorphisms from `⨁ i, A i` are equal on each `of A i y`,
@@ -69,7 +69,7 @@ If `CompleteLattice.independent (Set.range A)`, these provide a gradation of `
mapping `⨁ i, A i →+ ⨆ i, A i` can be obtained as
`DirectSum.toMonoid (fun i ↦ AddSubmonoid.inclusion <| le_iSup A i)`.
-## tags
+## Tags
graded ring, filtered ring, direct sum, add_submonoid
-/
slow / slower
porting notes (#11084)
Classifies by adding issue number #11083 to porting notes claiming anything semantically equivalent to:
attribute
because it caused extremely slow tactic
"@@ -234,7 +234,7 @@ private nonrec theorem one_mul (x : ⨁ i, A i) : 1 * x = x := by
exact of_eq_of_gradedMonoid_eq (one_mul <| GradedMonoid.mk i xi)
#noalign direct_sum.one_mul
--- Porting note: `suffices` is very slow here.
+-- Porting note (#11083): `suffices` is very slow here.
private nonrec theorem mul_one (x : ⨁ i, A i) : x * 1 = x := by
suffices (mulHom A).flip One.one = AddMonoidHom.id (⨁ i, A i) from DFunLike.congr_fun this x
apply addHom_ext; intro i xi
I loogled for every occurrence of "cast", Nat
and "natCast"
and where the casted nat was n
, and made sure there were corresponding @[simp]
lemmas for 0
, 1
, and OfNat.ofNat n
. This is necessary in general for simp confluence. Example:
import Mathlib
variable {α : Type*} [LinearOrderedRing α] (m n : ℕ) [m.AtLeastTwo] [n.AtLeastTwo]
example : ((OfNat.ofNat m : ℕ) : α) ≤ ((OfNat.ofNat n : ℕ) : α) ↔ (OfNat.ofNat m : ℕ) ≤ (OfNat.ofNat n : ℕ) := by
simp only [Nat.cast_le] -- this `@[simp]` lemma can apply
example : ((OfNat.ofNat m : ℕ) : α) ≤ ((OfNat.ofNat n : ℕ) : α) ↔ (OfNat.ofNat m : α) ≤ (OfNat.ofNat n : α) := by
simp only [Nat.cast_ofNat] -- and so can this one
example : (OfNat.ofNat m : α) ≤ (OfNat.ofNat n : α) ↔ (OfNat.ofNat m : ℕ) ≤ (OfNat.ofNat n : ℕ) := by
simp -- fails! `simp` doesn't have a lemma to bridge their results. confluence issue.
As far as I know, the only file this PR leaves with ofNat
gaps is PartENat.lean
. #8002 is addressing that file in parallel.
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -457,11 +457,19 @@ theorem of_zero_pow (a : A 0) : ∀ n : ℕ, of A 0 (a ^ n) = of A 0 a ^ n
instance : NatCast (A 0) :=
⟨GSemiring.natCast⟩
+
+-- TODO: These could be replaced by the general lemmas for `AddMonoidHomClass` (`map_natCast'` and
+-- `map_ofNat'`) if those were marked `@[simp low]`.
@[simp]
theorem of_natCast (n : ℕ) : of A 0 n = n :=
rfl
#align direct_sum.of_nat_cast DirectSum.of_natCast
+-- See note [no_index around OfNat.ofNat]
+@[simp]
+theorem of_zero_ofNat (n : ℕ) [n.AtLeastTwo] : of A 0 (no_index (OfNat.ofNat n)) = OfNat.ofNat n :=
+ of_natCast A n
+
/-- The `Semiring` structure derived from `GSemiring A`. -/
instance GradeZero.semiring : Semiring (A 0) :=
Function.Injective.semiring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
@@ -458,15 +458,15 @@ instance : NatCast (A 0) :=
⟨GSemiring.natCast⟩
@[simp]
-theorem ofNatCast (n : ℕ) : of A 0 n = n :=
+theorem of_natCast (n : ℕ) : of A 0 n = n :=
rfl
-#align direct_sum.of_nat_cast DirectSum.ofNatCast
+#align direct_sum.of_nat_cast DirectSum.of_natCast
/-- The `Semiring` structure derived from `GSemiring A`. -/
instance GradeZero.semiring : Semiring (A 0) :=
Function.Injective.semiring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
(of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun _ _ => of_zero_pow _ _ _)
- (ofNatCast A)
+ (of_natCast A)
#align direct_sum.grade_zero.semiring DirectSum.GradeZero.semiring
/-- `of A 0` is a `RingHom`, using the `DirectSum.GradeZero.semiring` structure. -/
@@ -494,7 +494,7 @@ variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
instance GradeZero.commSemiring : CommSemiring (A 0) :=
Function.Injective.commSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
(of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => DFinsupp.single_smul n x)
- (fun _ _ => of_zero_pow _ _ _) (ofNatCast A)
+ (fun _ _ => of_zero_pow _ _ _) (of_natCast A)
#align direct_sum.grade_zero.comm_semiring DirectSum.GradeZero.commSemiring
end CommSemiring
@@ -525,9 +525,9 @@ instance : IntCast (A 0) :=
⟨GRing.intCast⟩
@[simp]
-theorem ofIntCast (n : ℤ) : of A 0 n = n := by
+theorem of_intCast (n : ℤ) : of A 0 n = n := by
rfl
-#align direct_sum.of_int_cast DirectSum.ofIntCast
+#align direct_sum.of_int_cast DirectSum.of_intCast
/-- The `Ring` derived from `GSemiring A`. -/
instance GradeZero.ring : Ring (A 0) :=
@@ -539,7 +539,7 @@ instance GradeZero.ring : Ring (A 0) :=
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
DFinsupp.single_smul n x)
- (fun _ _ => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
+ (fun _ _ => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
#align direct_sum.grade_zero.ring DirectSum.GradeZero.ring
end Ring
@@ -558,7 +558,7 @@ instance GradeZero.commRing : CommRing (A 0) :=
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
DFinsupp.single_smul n x)
- (fun _ _ => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
+ (fun _ _ => of_zero_pow _ _ _) (of_natCast A) (of_intCast A)
#align direct_sum.grade_zero.comm_ring DirectSum.GradeZero.commRing
end CommRing
@@ -614,7 +614,7 @@ def toSemiring (f : ∀ i, A i →+ R) (hone : f _ GradedMonoid.GOne.one = 1)
exact hmul _ _ }
#align direct_sum.to_semiring DirectSum.toSemiring
--- Porting note: removed @[simp] as simp can prove this
+-- Porting note (#10618): removed @[simp] as simp can prove this
theorem toSemiring_of (f : ∀ i, A i →+ R) (hone hmul) (i : ι) (x : A i) :
toSemiring f hone hmul (of _ i x) = f _ x :=
toAddMonoid_of f i x
@@ -99,7 +99,8 @@ class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
addition. -/
mul_add : ∀ {i j} (a : A i) (b c : A j), mul a (b + c) = mul a b + mul a c
/-- Multiplication from the left between graded components distributes with respect to
- addition. -/ add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
+ addition. -/
+ add_mul : ∀ {i j} (a b : A i) (c : A j), mul (a + b) c = mul a c + mul b c
#align direct_sum.gnon_unital_non_assoc_semiring DirectSum.GNonUnitalNonAssocSemiring
end Defs
FunLike
to DFunLike
(#9785)
This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.
This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:
sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -226,7 +226,7 @@ variable [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A]
open AddMonoidHom (flipHom coe_comp compHom flip_apply)
private nonrec theorem one_mul (x : ⨁ i, A i) : 1 * x = x := by
- suffices mulHom A One.one = AddMonoidHom.id (⨁ i, A i) from FunLike.congr_fun this x
+ suffices mulHom A One.one = AddMonoidHom.id (⨁ i, A i) from DFunLike.congr_fun this x
apply addHom_ext; intro i xi
simp only [One.one]
rw [mulHom_of_of]
@@ -235,7 +235,7 @@ private nonrec theorem one_mul (x : ⨁ i, A i) : 1 * x = x := by
-- Porting note: `suffices` is very slow here.
private nonrec theorem mul_one (x : ⨁ i, A i) : x * 1 = x := by
- suffices (mulHom A).flip One.one = AddMonoidHom.id (⨁ i, A i) from FunLike.congr_fun this x
+ suffices (mulHom A).flip One.one = AddMonoidHom.id (⨁ i, A i) from DFunLike.congr_fun this x
apply addHom_ext; intro i xi
simp only [One.one]
rw [flip_apply, mulHom_of_of]
@@ -248,7 +248,7 @@ private theorem mul_assoc (a b c : ⨁ i, A i) : a * b * c = a * (b * c) := by
-- (`fun a b c => a * b * c` as a bundled hom) = (`fun a b c => a * (b * c)` as a bundled hom)
suffices (mulHom A).compHom.comp (mulHom A) =
(AddMonoidHom.compHom flipHom <| (mulHom A).flip.compHom.comp (mulHom A)).flip by
- have sol := FunLike.congr_fun (FunLike.congr_fun (FunLike.congr_fun this a) b) c
+ have sol := DFunLike.congr_fun (DFunLike.congr_fun (DFunLike.congr_fun this a) b) c
have aux : ∀ a b, (mulHom A) a b = a * b := fun _ _ ↦ rfl
simp only [coe_comp, Function.comp_apply, AddMonoidHom.compHom_apply_apply, aux, flip_apply,
AddMonoidHom.flipHom_apply] at sol
$
with <|
(#9319)
See Zulip thread for the discussion.
@@ -67,7 +67,7 @@ instances for:
If `CompleteLattice.independent (Set.range A)`, these provide a gradation of `⨆ i, A i`, and the
mapping `⨁ i, A i →+ ⨆ i, A i` can be obtained as
-`DirectSum.toMonoid (fun i ↦ AddSubmonoid.inclusion $ le_iSup A i)`.
+`DirectSum.toMonoid (fun i ↦ AddSubmonoid.inclusion <| le_iSup A i)`.
## tags
Removes nonterminal simps on lines looking like simp [...]
@@ -643,7 +643,7 @@ def liftRingHom :
rfl,
by
intros i j ai aj
- simp [AddMonoidHom.comp_apply]
+ simp only [AddMonoidHom.comp_apply, AddMonoidHom.coe_coe]
rw [← F.map_mul (of A i ai), of_mul_of ai]⟩
left_inv f := by
ext xi xv
@@ -312,8 +312,10 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
-- Porting note: I have no idea how the proof from ml3 worked it used to be
-- simpa only [mul_hom, to_add_monoid, dfinsupp.lift_add_hom_apply, dfinsupp.sum_add_hom_apply,
-- add_monoid_hom.dfinsupp_sum_apply, flip_apply, add_monoid_hom.dfinsupp_sum_add_hom_apply],
- rw [mulHom,toAddMonoid,DFinsupp.liftAddHom_apply,DFinsupp.sumAddHom_apply,
- AddMonoidHom.dfinsupp_sum_apply]
+ rw [mulHom, toAddMonoid, DFinsupp.liftAddHom_apply]
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [DFinsupp.sumAddHom_apply]
+ rw [AddMonoidHom.dfinsupp_sum_apply]
apply congrArg _
funext x
simp_rw [flip_apply]
@@ -312,10 +312,8 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
-- Porting note: I have no idea how the proof from ml3 worked it used to be
-- simpa only [mul_hom, to_add_monoid, dfinsupp.lift_add_hom_apply, dfinsupp.sum_add_hom_apply,
-- add_monoid_hom.dfinsupp_sum_apply, flip_apply, add_monoid_hom.dfinsupp_sum_add_hom_apply],
- rw [mulHom, toAddMonoid, DFinsupp.liftAddHom_apply]
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [DFinsupp.sumAddHom_apply]
- rw [AddMonoidHom.dfinsupp_sum_apply]
+ rw [mulHom,toAddMonoid,DFinsupp.liftAddHom_apply,DFinsupp.sumAddHom_apply,
+ AddMonoidHom.dfinsupp_sum_apply]
apply congrArg _
funext x
simp_rw [flip_apply]
@@ -312,8 +312,10 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
-- Porting note: I have no idea how the proof from ml3 worked it used to be
-- simpa only [mul_hom, to_add_monoid, dfinsupp.lift_add_hom_apply, dfinsupp.sum_add_hom_apply,
-- add_monoid_hom.dfinsupp_sum_apply, flip_apply, add_monoid_hom.dfinsupp_sum_add_hom_apply],
- rw [mulHom,toAddMonoid,DFinsupp.liftAddHom_apply,DFinsupp.sumAddHom_apply,
- AddMonoidHom.dfinsupp_sum_apply]
+ rw [mulHom, toAddMonoid, DFinsupp.liftAddHom_apply]
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [DFinsupp.sumAddHom_apply]
+ rw [AddMonoidHom.dfinsupp_sum_apply]
apply congrArg _
funext x
simp_rw [flip_apply]
This isn't a simp lemma for the same reason that Algebra.TensorProduct.one_def
isn't.
Also simplifies the term in the instance.
@@ -158,7 +158,9 @@ section One
variable [Zero ι] [GradedMonoid.GOne A] [∀ i, AddCommMonoid (A i)]
-instance : One (⨁ i, A i) where one := DirectSum.of (fun i => A i) 0 GradedMonoid.GOne.one
+instance : One (⨁ i, A i) where one := DirectSum.of A 0 GradedMonoid.GOne.one
+
+theorem one_def : 1 = DirectSum.of A 0 GradedMonoid.GOne.one := rfl
end One
This removes redundant field values of the form add := add
for smaller terms and less unfolding during unification.
A list of all files containing a structure instance of the form { a1, ... with x1 := val, ... }
where some xi
is a field of some aj
was generated by modifying the structure instance elaboration algorithm to print such overlaps to stdout in a custom toolchain.
Using that toolchain, I went through each file on the list and attempted to remove algebraic fields that overlapped and were redundant, eg add := add
and not toFun
(though some other ones did creep in). If things broke (which was the case in a couple of cases), I did not push further and reverted.
It is possible that pushing harder and trying to remove all redundant overlaps will yield further improvements.
@@ -345,10 +345,6 @@ private theorem mul_comm (a b : ⨁ i, A i) : a * b = b * a := by
/-- The `CommSemiring` structure derived from `GCommSemiring A`. -/
instance commSemiring : CommSemiring (⨁ i, A i) :=
{ DirectSum.semiring A with
- one := 1
- mul := (· * ·)
- zero := 0
- add := (· + ·)
mul_comm := mul_comm A }
#align direct_sum.comm_semiring DirectSum.commSemiring
@@ -361,11 +357,7 @@ variable [∀ i, AddCommGroup (A i)] [Add ι] [GNonUnitalNonAssocSemiring A]
/-- The `Ring` derived from `GSemiring A`. -/
instance nonAssocRing : NonUnitalNonAssocRing (⨁ i, A i) :=
{ (inferInstance : NonUnitalNonAssocSemiring (⨁ i, A i)),
- (inferInstance : AddCommGroup (⨁ i, A i)) with
- mul := (· * ·)
- zero := 0
- add := (· + ·)
- neg := Neg.neg }
+ (inferInstance : AddCommGroup (⨁ i, A i)) with }
#align direct_sum.non_assoc_ring DirectSum.nonAssocRing
end NonUnitalNonAssocRing
@@ -394,12 +386,7 @@ variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GCommRing A]
/-- The `CommRing` derived from `GCommSemiring A`. -/
instance commRing : CommRing (⨁ i, A i) :=
{ DirectSum.ring A,
- DirectSum.commSemiring A with
- one := 1
- mul := (· * ·)
- zero := 0
- add := (· + ·)
- neg := Neg.neg }
+ DirectSum.commSemiring A with }
#align direct_sum.comm_ring DirectSum.commRing
end CommRing
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -75,7 +75,7 @@ graded ring, filtered ring, direct sum, add_submonoid
-/
-variable {ι : Type _} [DecidableEq ι]
+variable {ι : Type*} [DecidableEq ι]
namespace DirectSum
@@ -86,7 +86,7 @@ open DirectSum
section Defs
-variable (A : ι → Type _)
+variable (A : ι → Type*)
/-- A graded version of `NonUnitalNonAssocSemiring`. -/
class GNonUnitalNonAssocSemiring [Add ι] [∀ i, AddCommMonoid (A i)] extends
@@ -106,7 +106,7 @@ end Defs
section Defs
-variable (A : ι → Type _)
+variable (A : ι → Type*)
/-- A graded version of `Semiring`. -/
class GSemiring [AddMonoid ι] [∀ i, AddCommMonoid (A i)] extends GNonUnitalNonAssocSemiring A,
@@ -143,13 +143,13 @@ class GCommRing [AddCommMonoid ι] [∀ i, AddCommGroup (A i)] extends GRing A,
end Defs
-theorem of_eq_of_gradedMonoid_eq {A : ι → Type _} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
+theorem of_eq_of_gradedMonoid_eq {A : ι → Type*} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
{b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
DirectSum.of A i a = DirectSum.of A j b :=
DFinsupp.single_eq_of_sigma_eq h
#align direct_sum.of_eq_of_graded_monoid_eq DirectSum.of_eq_of_gradedMonoid_eq
-variable (A : ι → Type _)
+variable (A : ι → Type*)
/-! ### Instances for `⨁ i, A i` -/
@@ -575,7 +575,7 @@ end GradeZero
section ToSemiring
-variable {R : Type _} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A] [Semiring R]
+variable {R : Type*} [∀ i, AddCommMonoid (A i)] [AddMonoid ι] [GSemiring A] [Semiring R]
variable {A}
@@ -676,7 +676,7 @@ section Uniform
variable (ι)
/-- A direct sum of copies of a `Semiring` inherits the multiplication structure. -/
-instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type _} [AddMonoid ι]
+instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type*} [AddMonoid ι]
[NonUnitalNonAssocSemiring R] : DirectSum.GNonUnitalNonAssocSemiring fun _ : ι => R :=
{ -- Porting note: removed Mul.gMul ι with and we seem ok
mul_zero := mul_zero
@@ -686,7 +686,7 @@ instance NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring {R : Type
#align non_unital_non_assoc_semiring.direct_sum_gnon_unital_non_assoc_semiring NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring
/-- A direct sum of copies of a `Semiring` inherits the multiplication structure. -/
-instance Semiring.directSumGSemiring {R : Type _} [AddMonoid ι] [Semiring R] :
+instance Semiring.directSumGSemiring {R : Type*} [AddMonoid ι] [Semiring R] :
DirectSum.GSemiring fun _ : ι => R :=
{ NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring ι,
Monoid.gMonoid ι with
@@ -698,13 +698,13 @@ instance Semiring.directSumGSemiring {R : Type _} [AddMonoid ι] [Semiring R] :
open DirectSum
-- To check `Mul.gmul_mul` matches
-example {R : Type _} [AddMonoid ι] [Semiring R] (i j : ι) (a b : R) :
+example {R : Type*} [AddMonoid ι] [Semiring R] (i j : ι) (a b : R) :
(DirectSum.of _ i a * DirectSum.of _ j b : ⨁ _, R) = DirectSum.of _ (i + j) (a * b) := by
rw [DirectSum.of_mul_of, Mul.gMul_mul]
/-- A direct sum of copies of a `CommSemiring` inherits the commutative multiplication structure.
-/
-instance CommSemiring.directSumGCommSemiring {R : Type _} [AddCommMonoid ι] [CommSemiring R] :
+instance CommSemiring.directSumGCommSemiring {R : Type*} [AddCommMonoid ι] [CommSemiring R] :
DirectSum.GCommSemiring fun _ : ι => R :=
{ CommMonoid.gCommMonoid ι, Semiring.directSumGSemiring ι with }
#align comm_semiring.direct_sum_gcomm_semiring CommSemiring.directSumGCommSemiring
@@ -2,15 +2,12 @@
Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.direct_sum.ring
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.GradedMonoid
import Mathlib.Algebra.DirectSum.Basic
+#align_import algebra.direct_sum.ring from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
# Additively-graded multiplicative structures on `⨁ i, A i`
@@ -149,7 +149,7 @@ end Defs
theorem of_eq_of_gradedMonoid_eq {A : ι → Type _} [∀ i : ι, AddCommMonoid (A i)] {i j : ι} {a : A i}
{b : A j} (h : GradedMonoid.mk i a = GradedMonoid.mk j b) :
DirectSum.of A i a = DirectSum.of A j b :=
- Dfinsupp.single_eq_of_sigma_eq h
+ DFinsupp.single_eq_of_sigma_eq h
#align direct_sum.of_eq_of_graded_monoid_eq DirectSum.of_eq_of_gradedMonoid_eq
variable (A : ι → Type _)
@@ -313,12 +313,12 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
-- Porting note: I have no idea how the proof from ml3 worked it used to be
-- simpa only [mul_hom, to_add_monoid, dfinsupp.lift_add_hom_apply, dfinsupp.sum_add_hom_apply,
-- add_monoid_hom.dfinsupp_sum_apply, flip_apply, add_monoid_hom.dfinsupp_sum_add_hom_apply],
- rw [mulHom,toAddMonoid,Dfinsupp.liftAddHom_apply,Dfinsupp.sumAddHom_apply,
+ rw [mulHom,toAddMonoid,DFinsupp.liftAddHom_apply,DFinsupp.sumAddHom_apply,
AddMonoidHom.dfinsupp_sum_apply]
apply congrArg _
funext x
simp_rw [flip_apply]
- erw [Dfinsupp.sumAddHom_apply]
+ erw [DFinsupp.sumAddHom_apply]
simp only [gMulHom, AddMonoidHom.dfinsupp_sum_apply, flip_apply, coe_comp, AddMonoidHom.coe_mk,
ZeroHom.coe_mk, Function.comp_apply, AddMonoidHom.compHom_apply_apply]
#align direct_sum.mul_eq_dfinsupp_sum DirectSum.mul_eq_dfinsupp_sum
@@ -326,9 +326,9 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
/-- A heavily unfolded version of the definition of multiplication -/
theorem mul_eq_sum_support_ghas_mul [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
a * a' =
- ∑ ij in Dfinsupp.support a ×ˢ Dfinsupp.support a',
+ ∑ ij in DFinsupp.support a ×ˢ DFinsupp.support a',
DirectSum.of _ _ (GradedMonoid.GMul.mul (a ij.fst) (a' ij.snd)) :=
- by simp only [mul_eq_dfinsupp_sum, Dfinsupp.sum, Finset.sum_product]
+ by simp only [mul_eq_dfinsupp_sum, DFinsupp.sum, Finset.sum_product]
#align direct_sum.mul_eq_sum_support_ghas_mul DirectSum.mul_eq_sum_support_ghas_mul
end Semiring
@@ -442,13 +442,13 @@ theorem of_zero_mul (a b : A 0) : of _ 0 (a * b) = of _ 0 a * of _ 0 b :=
#align direct_sum.of_zero_mul DirectSum.of_zero_mul
instance GradeZero.nonUnitalNonAssocSemiring : NonUnitalNonAssocSemiring (A 0) :=
- Function.Injective.nonUnitalNonAssocSemiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero
- (of A 0).map_add (of_zero_mul A) fun x n => Dfinsupp.single_smul n x
+ Function.Injective.nonUnitalNonAssocSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
+ (of A 0).map_add (of_zero_mul A) fun x n => DFinsupp.single_smul n x
#align direct_sum.grade_zero.non_unital_non_assoc_semiring DirectSum.GradeZero.nonUnitalNonAssocSemiring
instance GradeZero.smulWithZero (i : ι) : SMulWithZero (A 0) (A i) := by
letI := SMulWithZero.compHom (⨁ i, A i) (of A 0).toZeroHom
- exact Function.Injective.smulWithZero (of A i).toZeroHom Dfinsupp.single_injective
+ exact Function.Injective.smulWithZero (of A i).toZeroHom DFinsupp.single_injective
(of_zero_smul A)
#align direct_sum.grade_zero.smul_with_zero DirectSum.GradeZero.smulWithZero
@@ -475,7 +475,7 @@ theorem ofNatCast (n : ℕ) : of A 0 n = n :=
/-- The `Semiring` structure derived from `GSemiring A`. -/
instance GradeZero.semiring : Semiring (A 0) :=
- Function.Injective.semiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
+ Function.Injective.semiring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
(of A 0).map_add (of_zero_mul A) (of A 0).map_nsmul (fun _ _ => of_zero_pow _ _ _)
(ofNatCast A)
#align direct_sum.grade_zero.semiring DirectSum.GradeZero.semiring
@@ -492,7 +492,7 @@ in an overall `Module (A 0) (⨁ i, A i)` structure via `DirectSum.module`.
-/
instance GradeZero.module {i} : Module (A 0) (A i) :=
letI := Module.compHom (⨁ i, A i) (ofZeroRingHom A)
- Dfinsupp.single_injective.module (A 0) (of A i) fun a => of_zero_smul A a
+ DFinsupp.single_injective.module (A 0) (of A i) fun a => of_zero_smul A a
#align direct_sum.grade_zero.module DirectSum.GradeZero.module
end Semiring
@@ -503,8 +503,8 @@ variable [∀ i, AddCommMonoid (A i)] [AddCommMonoid ι] [GCommSemiring A]
/-- The `CommSemiring` structure derived from `GCommSemiring A`. -/
instance GradeZero.commSemiring : CommSemiring (A 0) :=
- Function.Injective.commSemiring (of A 0) Dfinsupp.single_injective (of A 0).map_zero
- (of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => Dfinsupp.single_smul n x)
+ Function.Injective.commSemiring (of A 0) DFinsupp.single_injective (of A 0).map_zero
+ (of_zero_one A) (of A 0).map_add (of_zero_mul A) (fun x n => DFinsupp.single_smul n x)
(fun _ _ => of_zero_pow _ _ _) (ofNatCast A)
#align direct_sum.grade_zero.comm_semiring DirectSum.GradeZero.commSemiring
@@ -516,14 +516,14 @@ variable [∀ i, AddCommGroup (A i)] [AddZeroClass ι] [GNonUnitalNonAssocSemiri
/-- The `NonUnitalNonAssocRing` derived from `GNonUnitalNonAssocSemiring A`. -/
instance GradeZero.nonUnitalNonAssocRing : NonUnitalNonAssocRing (A 0) :=
- Function.Injective.nonUnitalNonAssocRing (of A 0) Dfinsupp.single_injective (of A 0).map_zero
+ Function.Injective.nonUnitalNonAssocRing (of A 0) DFinsupp.single_injective (of A 0).map_zero
(of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
(fun x n =>
letI : ∀ i, DistribMulAction ℕ (A i) := fun _ => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
- Dfinsupp.single_smul n x
+ DFinsupp.single_smul n x
#align direct_sum.grade_zero.non_unital_non_assoc_ring DirectSum.GradeZero.nonUnitalNonAssocRing
end Ring
@@ -542,14 +542,14 @@ theorem ofIntCast (n : ℤ) : of A 0 n = n := by
/-- The `Ring` derived from `GSemiring A`. -/
instance GradeZero.ring : Ring (A 0) :=
- Function.Injective.ring (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
+ Function.Injective.ring (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
(of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
(fun x n =>
letI : ∀ i, DistribMulAction ℕ (A i) := fun _ => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun _ _ => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
#align direct_sum.grade_zero.ring DirectSum.GradeZero.ring
@@ -561,14 +561,14 @@ variable [∀ i, AddCommGroup (A i)] [AddCommMonoid ι] [GCommRing A]
/-- The `CommRing` derived from `GCommSemiring A`. -/
instance GradeZero.commRing : CommRing (A 0) :=
- Function.Injective.commRing (of A 0) Dfinsupp.single_injective (of A 0).map_zero (of_zero_one A)
+ Function.Injective.commRing (of A 0) DFinsupp.single_injective (of A 0).map_zero (of_zero_one A)
(of A 0).map_add (of_zero_mul A) (of A 0).map_neg (of A 0).map_sub
(fun x n =>
letI : ∀ i, DistribMulAction ℕ (A i) := fun _ => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun x n =>
letI : ∀ i, DistribMulAction ℤ (A i) := fun _ => inferInstance
- Dfinsupp.single_smul n x)
+ DFinsupp.single_smul n x)
(fun _ _ => of_zero_pow _ _ _) (ofNatCast A) (ofIntCast A)
#align direct_sum.grade_zero.comm_ring DirectSum.GradeZero.commRing
@@ -638,7 +638,7 @@ theorem toSemiring_coe_addMonoidHom (f : ∀ i, A i →+ R) (hone hmul) :
#align direct_sum.to_semiring_coe_add_monoid_hom DirectSum.toSemiring_coe_addMonoidHom
/-- Families of `AddMonoidHom`s preserving `DirectSum.One.one` and `DirectSum.Mul.mul`
-are isomorphic to `RingHom`s on `⨁ i, A i`. This is a stronger version of `Dfinsupp.liftAddHom`.
+are isomorphic to `RingHom`s on `⨁ i, A i`. This is a stronger version of `DFinsupp.liftAddHom`.
-/
@[simps]
def liftRingHom :
ext
(#5258)
Co-authored-by: Xavier Roblot <46200072+xroblot@users.noreply.github.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Riccardo Brasca <riccardo.brasca@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Pol'tta / Miyahara Kō <pol_tta@outlook.jp> Co-authored-by: Jason Yuen <jason_yuen2007@hotmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com> Co-authored-by: Jireh Loreaux <loreaujy@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com> Co-authored-by: Jujian Zhang <jujian.zhang1998@outlook.com> Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
@@ -658,7 +658,7 @@ def liftRingHom :
simp [AddMonoidHom.comp_apply]
rw [← F.map_mul (of A i ai), of_mul_of ai]⟩
left_inv f := by
- ext (xi xv)
+ ext xi xv
exact toAddMonoid_of (fun _ => f.1) xi xv
right_inv F := by
apply RingHom.coe_addMonoidHom_injective
@@ -254,10 +254,7 @@ private theorem mul_assoc (a b c : ⨁ i, A i) : a * b * c = a * (b * c) := by
simp only [coe_comp, Function.comp_apply, AddMonoidHom.compHom_apply_apply, aux, flip_apply,
AddMonoidHom.flipHom_apply] at sol
exact sol
- -- Porting note: Next three lines used to be a single `ext` which does not work anymore
- refine DirectSum.addHom_ext' (fun ai ↦ AddMonoidHom.ext (fun ax ↦ ?_))
- refine DirectSum.addHom_ext' (fun bi ↦ AddMonoidHom.ext (fun bx ↦ ?_))
- refine DirectSum.addHom_ext' (fun ci ↦ AddMonoidHom.ext (fun cx ↦ ?_))
+ ext ai ax bi bx ci cx
dsimp only [coe_comp, Function.comp_apply, AddMonoidHom.compHom_apply_apply, flip_apply,
AddMonoidHom.flipHom_apply]
simp_rw [mulHom_of_of]
@@ -70,7 +70,7 @@ instances for:
If `CompleteLattice.independent (Set.range A)`, these provide a gradation of `⨆ i, A i`, and the
mapping `⨁ i, A i →+ ⨆ i, A i` can be obtained as
-`DirectSum.toMonoid (λ i, AddSubmonoid.inclusion $ le_iSup A i)`.
+`DirectSum.toMonoid (fun i ↦ AddSubmonoid.inclusion $ le_iSup A i)`.
## tags
@@ -490,7 +490,7 @@ def ofZeroRingHom : A 0 →+* ⨁ i, A i :=
map_mul' := of_zero_mul A }
#align direct_sum.of_zero_ring_hom DirectSum.ofZeroRingHom
-/-- Each grade `A i` derives a `A 0`-module structure from `GSemiring A`. Note that this results
+/-- Each grade `A i` derives an `A 0`-module structure from `GSemiring A`. Note that this results
in an overall `Module (A 0) (⨁ i, A i)` structure via `DirectSum.module`.
-/
instance GradeZero.module {i} : Module (A 0) (A i) :=
@@ -66,7 +66,7 @@ instances for:
* `A : ι → Subgroup S`:
`DirectSum.GSemiring.ofAddSubgroups`, `DirectSum.GCommSemiring.ofAddSubgroups`.
* `A : ι → Submodule S`:
- `DirectSum.GSemiring.ofSubmodules`, `DirectSum.GcommSemiring.ofSubmodules`.
+ `DirectSum.GSemiring.ofSubmodules`, `DirectSum.GCommSemiring.ofSubmodules`.
If `CompleteLattice.independent (Set.range A)`, these provide a gradation of `⨆ i, A i`, and the
mapping `⨁ i, A i →+ ⨆ i, A i` can be obtained as
@@ -19,7 +19,7 @@ over `⨁ i, A i` such that `(*) : A i → A j → A (i + j)`; that is to say, `
additively-graded ring. The typeclasses are:
* `DirectSum.GNonUnitalNonAssocSemiring A`
-* `DirectSsum.GSemiring A`
+* `DirectSum.GSemiring A`
* `DirectSum.GRing A`
* `DirectSum.GCommSemiring A`
* `DirectSum.GCommRing A`
@@ -62,7 +62,7 @@ Additionally, this module provides helper functions to construct `GSemiring` and
instances for:
* `A : ι → Submonoid S`:
- `DirectSum.GSemiring.ofAddAubmonoids`, `DirectSum.GCommSemiring.ofAddSubmonoids`.
+ `DirectSum.GSemiring.ofAddSubmonoids`, `DirectSum.GCommSemiring.ofAddSubmonoids`.
* `A : ι → Subgroup S`:
`DirectSum.GSemiring.ofAddSubgroups`, `DirectSum.GCommSemiring.ofAddSubgroups`.
* `A : ι → Submodule S`:
@@ -705,7 +705,7 @@ open DirectSum
-- To check `Mul.gmul_mul` matches
example {R : Type _} [AddMonoid ι] [Semiring R] (i j : ι) (a b : R) :
- (DirectSum.of _ i a * DirectSum.of _ j b : ⨁ _i, R) = DirectSum.of _ (i + j) (a * b) := by
+ (DirectSum.of _ i a * DirectSum.of _ j b : ⨁ _, R) = DirectSum.of _ (i + j) (a * b) := by
rw [DirectSum.of_mul_of, Mul.gMul_mul]
/-- A direct sum of copies of a `CommSemiring` inherits the commutative multiplication structure.
SProd
to implement overloaded notation · ×ˢ ·
(#4200)
Currently, the following notations are changed from · ×ˢ ·
because Lean 4 can't deal with ambiguous notations.
| Definition | Notation |
| :
Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com>
@@ -329,7 +329,7 @@ theorem mul_eq_dfinsupp_sum [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a'
/-- A heavily unfolded version of the definition of multiplication -/
theorem mul_eq_sum_support_ghas_mul [∀ (i : ι) (x : A i), Decidable (x ≠ 0)] (a a' : ⨁ i, A i) :
a * a' =
- ∑ ij in Dfinsupp.support a ×ᶠ Dfinsupp.support a',
+ ∑ ij in Dfinsupp.support a ×ˢ Dfinsupp.support a',
DirectSum.of _ _ (GradedMonoid.GMul.mul (a ij.fst) (a' ij.snd)) :=
by simp only [mul_eq_dfinsupp_sum, Dfinsupp.sum, Finset.sum_product]
#align direct_sum.mul_eq_sum_support_ghas_mul DirectSum.mul_eq_sum_support_ghas_mul
@@ -716,4 +716,3 @@ instance CommSemiring.directSumGCommSemiring {R : Type _} [AddCommMonoid ι] [Co
#align comm_semiring.direct_sum_gcomm_semiring CommSemiring.directSumGCommSemiring
end Uniform
-
fix-comments.py
on all files.@@ -70,7 +70,7 @@ instances for:
If `CompleteLattice.independent (Set.range A)`, these provide a gradation of `⨆ i, A i`, and the
mapping `⨁ i, A i →+ ⨆ i, A i` can be obtained as
-`DirectSum.toMonoid (λ i, AddSubmonoid.inclusion $ le_supr A i)`.
+`DirectSum.toMonoid (λ i, AddSubmonoid.inclusion $ le_iSup A i)`.
## tags
@@ -171,7 +171,7 @@ variable [Add ι] [∀ i, AddCommMonoid (A i)] [GNonUnitalNonAssocSemiring A]
open AddMonoidHom (flip_apply coe_comp compHom)
-/-- The piecewise multiplication from the `has_mul` instance, as a bundled homomorphism. -/
+/-- The piecewise multiplication from the `Mul` instance, as a bundled homomorphism. -/
@[simps]
def gMulHom {i j} : A i →+ A j →+ A (i + j) where
toFun a :=
The unported dependencies are