algebra.direct_sum.decomposition
⟷
Mathlib.Algebra.DirectSum.Decomposition
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Jujian Zhang
-/
-import Mathbin.Algebra.DirectSum.Module
-import Mathbin.Algebra.Module.Submodule.Basic
+import Algebra.DirectSum.Module
+import Algebra.Module.Submodule.Basic
#align_import algebra.direct_sum.decomposition from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Jujian Zhang
-
-! This file was ported from Lean 3 source module algebra.direct_sum.decomposition
-! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.DirectSum.Module
import Mathbin.Algebra.Module.Submodule.Basic
+#align_import algebra.direct_sum.decomposition from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
+
/-!
# Decompositions of additive monoids, groups, and modules into direct sums
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -63,8 +63,6 @@ class Decomposition where
#align direct_sum.decomposition DirectSum.Decomposition
-/
-include M
-
/-- `direct_sum.decomposition` instances, while carrying data, are always equal. -/
instance : Subsingleton (Decomposition ℳ) :=
⟨fun x y => by
@@ -75,9 +73,11 @@ instance : Subsingleton (Decomposition ℳ) :=
variable [Decomposition ℳ]
+#print DirectSum.Decomposition.isInternal /-
protected theorem Decomposition.isInternal : DirectSum.IsInternal ℳ :=
⟨Decomposition.right_inv.Injective, Decomposition.left_inv.Surjective⟩
#align direct_sum.decomposition.is_internal DirectSum.Decomposition.isInternal
+-/
#print DirectSum.decompose /-
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
@@ -90,6 +90,7 @@ def decompose : M ≃ ⨁ i, ℳ i where
#align direct_sum.decompose DirectSum.decompose
-/
+#print DirectSum.Decomposition.inductionOn /-
protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
(h_homogeneous : ∀ {i} (m : ℳ i), p (m : M)) (h_add : ∀ m m' : M, p m → p m' → p (m + m')) :
∀ m, p m :=
@@ -105,76 +106,104 @@ protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
exact fun m =>
AddSubmonoid.iSup_induction ℳ' (mem m) (fun i m h => h_homogeneous ⟨m, h⟩) h_zero h_add
#align direct_sum.decomposition.induction_on DirectSum.Decomposition.inductionOn
+-/
+#print DirectSum.Decomposition.decompose'_eq /-
@[simp]
theorem Decomposition.decompose'_eq : Decomposition.decompose' = decompose ℳ :=
rfl
#align direct_sum.decomposition.decompose'_eq DirectSum.Decomposition.decompose'_eq
+-/
+#print DirectSum.decompose_symm_of /-
@[simp]
theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum.of _ i x) = x :=
DirectSum.coeAddMonoidHom_of ℳ _ _
#align direct_sum.decompose_symm_of DirectSum.decompose_symm_of
+-/
+#print DirectSum.decompose_coe /-
@[simp]
theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.of _ i x := by
rw [← decompose_symm_of, Equiv.apply_symm_apply]
#align direct_sum.decompose_coe DirectSum.decompose_coe
+-/
+#print DirectSum.decompose_of_mem /-
theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
decompose ℳ x = DirectSum.of (fun i => ℳ i) i ⟨x, hx⟩ :=
decompose_coe _ ⟨x, hx⟩
#align direct_sum.decompose_of_mem DirectSum.decompose_of_mem
+-/
+#print DirectSum.decompose_of_mem_same /-
theorem decompose_of_mem_same {x : M} {i : ι} (hx : x ∈ ℳ i) : (decompose ℳ x i : M) = x := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_same, Subtype.coe_mk]
#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_same
+-/
+#print DirectSum.decompose_of_mem_ne /-
theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j) :
(decompose ℳ x j : M) = 0 := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_of_ne _ _ _ _ hij, ZeroMemClass.coe_zero]
#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_ne
+-/
+#print DirectSum.decomposeAddEquiv /-
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
an additive monoid to a direct sum of components. -/
@[simps (config := { fullyApplied := false })]
def decomposeAddEquiv : M ≃+ ⨁ i, ℳ i :=
AddEquiv.symm { (decompose ℳ).symm with map_add' := map_add (DirectSum.coeAddMonoidHom ℳ) }
#align direct_sum.decompose_add_equiv DirectSum.decomposeAddEquiv
+-/
+#print DirectSum.decompose_zero /-
@[simp]
theorem decompose_zero : decompose ℳ (0 : M) = 0 :=
map_zero (decomposeAddEquiv ℳ)
#align direct_sum.decompose_zero DirectSum.decompose_zero
+-/
+#print DirectSum.decompose_symm_zero /-
@[simp]
theorem decompose_symm_zero : (decompose ℳ).symm 0 = (0 : M) :=
map_zero (decomposeAddEquiv ℳ).symm
#align direct_sum.decompose_symm_zero DirectSum.decompose_symm_zero
+-/
+#print DirectSum.decompose_add /-
@[simp]
theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + decompose ℳ y :=
map_add (decomposeAddEquiv ℳ) x y
#align direct_sum.decompose_add DirectSum.decompose_add
+-/
+#print DirectSum.decompose_symm_add /-
@[simp]
theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
(decompose ℳ).symm (x + y) = (decompose ℳ).symm x + (decompose ℳ).symm y :=
map_add (decomposeAddEquiv ℳ).symm x y
#align direct_sum.decompose_symm_add DirectSum.decompose_symm_add
+-/
+#print DirectSum.decompose_sum /-
@[simp]
theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
decompose ℳ (∑ i in s, f i) = ∑ i in s, decompose ℳ (f i) :=
map_sum (decomposeAddEquiv ℳ) f s
#align direct_sum.decompose_sum DirectSum.decompose_sum
+-/
+#print DirectSum.decompose_symm_sum /-
@[simp]
theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
(decompose ℳ).symm (∑ i in s, f i) = ∑ i in s, (decompose ℳ).symm (f i) :=
map_sum (decomposeAddEquiv ℳ).symm f s
#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sum
+-/
+#print DirectSum.sum_support_decompose /-
theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M) :
∑ i in (decompose ℳ r).support, (decompose ℳ r i : M) = r :=
by
@@ -183,6 +212,7 @@ theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M)
rw [decompose_symm_sum]
simp_rw [decompose_symm_of]
#align direct_sum.sum_support_decompose DirectSum.sum_support_decompose
+-/
end AddCommMonoid
@@ -206,28 +236,34 @@ variable [SetLike σ M] [AddSubgroupClass σ M] (ℳ : ι → σ)
variable [Decomposition ℳ]
-include M
-
+#print DirectSum.decompose_neg /-
@[simp]
theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x :=
map_neg (decomposeAddEquiv ℳ) x
#align direct_sum.decompose_neg DirectSum.decompose_neg
+-/
+#print DirectSum.decompose_symm_neg /-
@[simp]
theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(decompose ℳ).symm x :=
map_neg (decomposeAddEquiv ℳ).symm x
#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_neg
+-/
+#print DirectSum.decompose_sub /-
@[simp]
theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - decompose ℳ y :=
map_sub (decomposeAddEquiv ℳ) x y
#align direct_sum.decompose_sub DirectSum.decompose_sub
+-/
+#print DirectSum.decompose_symm_sub /-
@[simp]
theorem decompose_symm_sub (x y : ⨁ i, ℳ i) :
(decompose ℳ).symm (x - y) = (decompose ℳ).symm x - (decompose ℳ).symm y :=
map_sub (decomposeAddEquiv ℳ).symm x y
#align direct_sum.decompose_symm_sub DirectSum.decompose_symm_sub
+-/
end AddCommGroup
@@ -239,8 +275,6 @@ variable (ℳ : ι → Submodule R M)
variable [Decomposition ℳ]
-include M
-
#print DirectSum.decomposeLinearEquiv /-
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
a module to a direct sum of components. -/
@@ -251,10 +285,12 @@ def decomposeLinearEquiv : M ≃ₗ[R] ⨁ i, ℳ i :=
#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquiv
-/
+#print DirectSum.decompose_smul /-
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x :=
map_smul (decomposeLinearEquiv ℳ) r x
#align direct_sum.decompose_smul DirectSum.decompose_smul
+-/
end Module
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -176,7 +176,7 @@ theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sum
theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M) :
- (∑ i in (decompose ℳ r).support, (decompose ℳ r i : M)) = r :=
+ ∑ i in (decompose ℳ r).support, (decompose ℳ r i : M) = r :=
by
conv_rhs =>
rw [← (decompose ℳ).symm_apply_apply r, ← sum_support_of (fun i => ℳ i) (decompose ℳ r)]
mathlib commit https://github.com/leanprover-community/mathlib/commit/31c24aa72e7b3e5ed97a8412470e904f82b81004
@@ -241,6 +241,7 @@ variable [Decomposition ℳ]
include M
+#print DirectSum.decomposeLinearEquiv /-
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
a module to a direct sum of components. -/
@[simps (config := { fullyApplied := false })]
@@ -248,6 +249,7 @@ def decomposeLinearEquiv : M ≃ₗ[R] ⨁ i, ℳ i :=
LinearEquiv.symm
{ (decomposeAddEquiv ℳ).symm with map_smul' := map_smul (DirectSum.coeLinearMap ℳ) }
#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquiv
+-/
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -39,7 +39,7 @@ bundled homs, but means we don't have to repeat statements for different types o
variable {ι R M σ : Type _}
-open DirectSum BigOperators
+open scoped DirectSum BigOperators
namespace DirectSum
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -75,12 +75,6 @@ instance : Subsingleton (Decomposition ℳ) :=
variable [Decomposition ℳ]
-/- warning: direct_sum.decomposition.is_internal -> DirectSum.Decomposition.isInternal is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], DirectSum.IsInternal.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], DirectSum.IsInternal.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ
-Case conversion may be inaccurate. Consider using '#align direct_sum.decomposition.is_internal DirectSum.Decomposition.isInternalₓ'. -/
protected theorem Decomposition.isInternal : DirectSum.IsInternal ℳ :=
⟨Decomposition.right_inv.Injective, Decomposition.left_inv.Surjective⟩
#align direct_sum.decomposition.is_internal DirectSum.Decomposition.isInternal
@@ -96,12 +90,6 @@ def decompose : M ≃ ⨁ i, ℳ i where
#align direct_sum.decompose DirectSum.decompose
-/
-/- warning: direct_sum.decomposition.induction_on -> DirectSum.Decomposition.inductionOn is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {p : M -> Prop}, (p (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (forall {i : ι} (m : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), p ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) m)) -> (forall (m : M) (m' : M), (p m) -> (p m') -> (p (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) m m'))) -> (forall (m : M), p m)
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {p : M -> Prop}, (p (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) -> (forall {i : ι} (m : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))), p (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} σ M _inst_3 (ℳ i))) m)) -> (forall (m : M) (m' : M), (p m) -> (p m') -> (p (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) m m'))) -> (forall (m : M), p m)
-Case conversion may be inaccurate. Consider using '#align direct_sum.decomposition.induction_on DirectSum.Decomposition.inductionOnₓ'. -/
protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
(h_homogeneous : ∀ {i} (m : ℳ i), p (m : M)) (h_add : ∀ m m' : M, p m → p m' → p (m + m')) :
∀ m, p m :=
@@ -118,62 +106,35 @@ protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
AddSubmonoid.iSup_induction ℳ' (mem m) (fun i m h => h_homogeneous ⟨m, h⟩) h_zero h_add
#align direct_sum.decomposition.induction_on DirectSum.Decomposition.inductionOn
-/- warning: direct_sum.decomposition.decompose'_eq -> DirectSum.Decomposition.decompose'_eq is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u2) (succ (max u1 u2))} (M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.Decomposition.decompose'.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i) _inst_5) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} (M -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.Decomposition.decompose'.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5))
-Case conversion may be inaccurate. Consider using '#align direct_sum.decomposition.decompose'_eq DirectSum.Decomposition.decompose'_eqₓ'. -/
@[simp]
theorem Decomposition.decompose'_eq : Decomposition.decompose' = decompose ℳ :=
rfl
#align direct_sum.decomposition.decompose'_eq DirectSum.Decomposition.decompose'_eq
-/- warning: direct_sum.decompose_symm_of -> DirectSum.decompose_symm_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_of DirectSum.decompose_symm_ofₓ'. -/
@[simp]
theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum.of _ i x) = x :=
DirectSum.coeAddMonoidHom_of ℳ _ _
#align direct_sum.decompose_symm_of DirectSum.decompose_symm_of
-/- warning: direct_sum.decompose_coe -> DirectSum.decompose_coe is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_coe DirectSum.decompose_coeₓ'. -/
@[simp]
theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.of _ i x := by
rw [← decompose_symm_of, Equiv.apply_symm_apply]
#align direct_sum.decompose_coe DirectSum.decompose_coe
-/- warning: direct_sum.decompose_of_mem -> DirectSum.decompose_of_mem is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem DirectSum.decompose_of_memₓ'. -/
theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
decompose ℳ x = DirectSum.of (fun i => ℳ i) i ⟨x, hx⟩ :=
decompose_coe _ ⟨x, hx⟩
#align direct_sum.decompose_of_mem DirectSum.decompose_of_mem
-/- warning: direct_sum.decompose_of_mem_same -> DirectSum.decompose_of_mem_same is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_sameₓ'. -/
theorem decompose_of_mem_same {x : M} {i : ι} (hx : x ∈ ℳ i) : (decompose ℳ x i : M) = x := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_same, Subtype.coe_mk]
#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_same
-/- warning: direct_sum.decompose_of_mem_ne -> DirectSum.decompose_of_mem_ne is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_neₓ'. -/
theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j) :
(decompose ℳ x j : M) = 0 := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_of_ne _ _ _ _ hij, ZeroMemClass.coe_zero]
#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_ne
-/- warning: direct_sum.decompose_add_equiv -> DirectSum.decomposeAddEquiv is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], AddEquiv.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], AddEquiv.{u2, max u2 u1} M (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_add_equiv DirectSum.decomposeAddEquivₓ'. -/
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
an additive monoid to a direct sum of components. -/
@[simps (config := { fullyApplied := false })]
@@ -181,66 +142,39 @@ def decomposeAddEquiv : M ≃+ ⨁ i, ℳ i :=
AddEquiv.symm { (decompose ℳ).symm with map_add' := map_add (DirectSum.coeAddMonoidHom ℳ) }
#align direct_sum.decompose_add_equiv DirectSum.decomposeAddEquiv
-/- warning: direct_sum.decompose_zero -> DirectSum.decompose_zero is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (OfNat.ofNat.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) 0 (Zero.toOfNat0.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_zero DirectSum.decompose_zeroₓ'. -/
@[simp]
theorem decompose_zero : decompose ℳ (0 : M) = 0 :=
map_zero (decomposeAddEquiv ℳ)
#align direct_sum.decompose_zero DirectSum.decompose_zero
-/- warning: direct_sum.decompose_symm_zero -> DirectSum.decompose_symm_zero is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
-but is expected to have type
- forall {ι : Type.{u2}} {M : Type.{u3}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u1, u3} σ M] [_inst_4 : AddSubmonoidClass.{u1, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (Equiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u2) (succ u3)} M (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_zero DirectSum.decompose_symm_zeroₓ'. -/
@[simp]
theorem decompose_symm_zero : (decompose ℳ).symm 0 = (0 : M) :=
map_zero (decomposeAddEquiv ℳ).symm
#align direct_sum.decompose_symm_zero DirectSum.decompose_symm_zero
-/- warning: direct_sum.decompose_add -> DirectSum.decompose_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_add DirectSum.decompose_addₓ'. -/
@[simp]
theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + decompose ℳ y :=
map_add (decomposeAddEquiv ℳ) x y
#align direct_sum.decompose_add DirectSum.decompose_add
-/- warning: direct_sum.decompose_symm_add -> DirectSum.decompose_symm_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_add DirectSum.decompose_symm_addₓ'. -/
@[simp]
theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
(decompose ℳ).symm (x + y) = (decompose ℳ).symm x + (decompose ℳ).symm y :=
map_add (decomposeAddEquiv ℳ).symm x y
#align direct_sum.decompose_symm_add DirectSum.decompose_symm_add
-/- warning: direct_sum.decompose_sum -> DirectSum.decompose_sum is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sum DirectSum.decompose_sumₓ'. -/
@[simp]
theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
decompose ℳ (∑ i in s, f i) = ∑ i in s, decompose ℳ (f i) :=
map_sum (decomposeAddEquiv ℳ) f s
#align direct_sum.decompose_sum DirectSum.decompose_sum
-/- warning: direct_sum.decompose_symm_sum -> DirectSum.decompose_symm_sum is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sumₓ'. -/
@[simp]
theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
(decompose ℳ).symm (∑ i in s, f i) = ∑ i in s, (decompose ℳ).symm (f i) :=
map_sum (decomposeAddEquiv ℳ).symm f s
#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sum
-/- warning: direct_sum.sum_support_decompose -> DirectSum.sum_support_decompose is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.sum_support_decompose DirectSum.sum_support_decomposeₓ'. -/
theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M) :
(∑ i in (decompose ℳ r).support, (decompose ℳ r i : M)) = r :=
by
@@ -274,33 +208,21 @@ variable [Decomposition ℳ]
include M
-/- warning: direct_sum.decompose_neg -> DirectSum.decompose_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_neg DirectSum.decompose_negₓ'. -/
@[simp]
theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x :=
map_neg (decomposeAddEquiv ℳ) x
#align direct_sum.decompose_neg DirectSum.decompose_neg
-/- warning: direct_sum.decompose_symm_neg -> DirectSum.decompose_symm_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_negₓ'. -/
@[simp]
theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(decompose ℳ).symm x :=
map_neg (decomposeAddEquiv ℳ).symm x
#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_neg
-/- warning: direct_sum.decompose_sub -> DirectSum.decompose_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sub DirectSum.decompose_subₓ'. -/
@[simp]
theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - decompose ℳ y :=
map_sub (decomposeAddEquiv ℳ) x y
#align direct_sum.decompose_sub DirectSum.decompose_sub
-/- warning: direct_sum.decompose_symm_sub -> DirectSum.decompose_symm_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sub DirectSum.decompose_symm_subₓ'. -/
@[simp]
theorem decompose_symm_sub (x y : ⨁ i, ℳ i) :
(decompose ℳ).symm (x - y) = (decompose ℳ).symm x - (decompose ℳ).symm y :=
@@ -319,12 +241,6 @@ variable [Decomposition ℳ]
include M
-/- warning: direct_sum.decompose_linear_equiv -> DirectSum.decomposeLinearEquiv is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u2, u3} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ], LinearEquiv.{u2, u2, u3, max u1 u3} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_3 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_4 (DirectSum.module.{u2, u1, u3} R _inst_2 ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)) (fun (i : ι) => Submodule.module.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)))
-but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u2, u3} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ], LinearEquiv.{u2, u2, u3, max u3 u1} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_3 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_4 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u2, u1, u3} R _inst_2 ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)) (fun (i : ι) => Submodule.module.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)))
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquivₓ'. -/
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
a module to a direct sum of components. -/
@[simps (config := { fullyApplied := false })]
@@ -333,9 +249,6 @@ def decomposeLinearEquiv : M ≃ₗ[R] ⨁ i, ℳ i :=
{ (decomposeAddEquiv ℳ).symm with map_smul' := map_smul (DirectSum.coeLinearMap ℳ) }
#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquiv
-/- warning: direct_sum.decompose_smul -> DirectSum.decompose_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_smul DirectSum.decompose_smulₓ'. -/
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x :=
map_smul (decomposeLinearEquiv ℳ) r x
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -130,10 +130,7 @@ theorem Decomposition.decompose'_eq : Decomposition.decompose' = decompose ℳ :
#align direct_sum.decomposition.decompose'_eq DirectSum.Decomposition.decompose'_eq
/- warning: direct_sum.decompose_symm_of -> DirectSum.decompose_symm_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) x)
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (a : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), succ u3} (Equiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_of DirectSum.decompose_symm_ofₓ'. -/
@[simp]
theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum.of _ i x) = x :=
@@ -141,10 +138,7 @@ theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum
#align direct_sum.decompose_symm_of DirectSum.decompose_symm_of
/- warning: direct_sum.decompose_coe -> DirectSum.decompose_coe is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) x)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_coe DirectSum.decompose_coeₓ'. -/
@[simp]
theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.of _ i x := by
@@ -152,10 +146,7 @@ theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.o
#align direct_sum.decompose_coe DirectSum.decompose_coe
/- warning: direct_sum.decompose_of_mem -> DirectSum.decompose_of_mem is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} (hx : Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) x hx))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} (hx : Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) (Subtype.mk.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) x hx))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem DirectSum.decompose_of_memₓ'. -/
theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
decompose ℳ x = DirectSum.of (fun i => ℳ i) i ⟨x, hx⟩ :=
@@ -163,20 +154,14 @@ theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
#align direct_sum.decompose_of_mem DirectSum.decompose_of_mem
/- warning: direct_sum.decompose_of_mem_same -> DirectSum.decompose_of_mem_same is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι}, (Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) -> (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) i)) x)
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) i)) x)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_sameₓ'. -/
theorem decompose_of_mem_same {x : M} {i : ι} (hx : x ∈ ℳ i) : (decompose ℳ x i : M) = x := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_same, Subtype.coe_mk]
#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_same
/- warning: direct_sum.decompose_of_mem_ne -> DirectSum.decompose_of_mem_ne is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} {j : ι}, (Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) -> (Ne.{succ u1} ι i j) -> (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ j)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) j)) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} {j : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Ne.{succ u1} ι i j) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ j))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) j)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)))))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_neₓ'. -/
theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j) :
(decompose ℳ x j : M) = 0 := by
@@ -219,10 +204,7 @@ theorem decompose_symm_zero : (decompose ℳ).symm 0 = (0 : M) :=
#align direct_sum.decompose_symm_zero DirectSum.decompose_symm_zero
/- warning: direct_sum.decompose_add -> DirectSum.decompose_add is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : M) (y : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) y))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instHAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddZeroClass.toAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddMonoid.toAddZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_add DirectSum.decompose_addₓ'. -/
@[simp]
theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + decompose ℳ y :=
@@ -230,10 +212,7 @@ theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + deco
#align direct_sum.decompose_add DirectSum.decompose_add
/- warning: direct_sum.decompose_symm_add -> DirectSum.decompose_symm_add is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (y : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) x) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) y))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddZeroClass.toAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_add DirectSum.decompose_symm_addₓ'. -/
@[simp]
theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
@@ -242,10 +221,7 @@ theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
#align direct_sum.decompose_symm_add DirectSum.decompose_symm_add
/- warning: direct_sum.decompose_sum -> DirectSum.decompose_sum is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (Finset.sum.{max u1 u2, u4} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (f i)))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (f i)))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sum DirectSum.decompose_sumₓ'. -/
@[simp]
theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
@@ -254,10 +230,7 @@ theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
#align direct_sum.decompose_sum DirectSum.decompose_sum
/- warning: direct_sum.decompose_symm_sum -> DirectSum.decompose_symm_sum is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (Finset.sum.{max u1 u2, u4} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (f i)))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (f i)))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sumₓ'. -/
@[simp]
theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
@@ -266,10 +239,7 @@ theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sum
/- warning: direct_sum.sum_support_decompose -> DirectSum.sum_support_decompose is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] [_inst_6 : forall (i : ι) (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Decidable (Ne.{succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) x (OfNat.ofNat.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) 0 (OfNat.mk.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) 0 (Zero.zero.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (ZeroMemClass.zero.{u3, u2} σ M _inst_3 (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddSubmonoidClass.to_zeroMemClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))))))] (r : M), Eq.{succ u2} M (Finset.sum.{u2, u1} M ι _inst_2 (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)))) (fun (i : ι) (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) => _inst_6 i x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r)) (fun (i : ι) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r) i))) r
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] [_inst_6 : forall (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Decidable (Ne.{succ u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) x (OfNat.ofNat.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) 0 (Zero.toOfNat0.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (ZeroMemClass.zero.{u2, u3} σ M _inst_3 (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (AddSubmonoidClass.toZeroMemClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3 _inst_4) (ℳ i)))))] (r : M), Eq.{succ u3} M (Finset.sum.{u3, u1} M ι _inst_2 (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (fun (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => _inst_6 i x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r)) (fun (i : ι) => Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r) i))) r
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.sum_support_decompose DirectSum.sum_support_decomposeₓ'. -/
theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M) :
(∑ i in (decompose ℳ r).support, (decompose ℳ r i : M)) = r :=
@@ -305,10 +275,7 @@ variable [Decomposition ℳ]
include M
/- warning: direct_sum.decompose_neg -> DirectSum.decompose_neg is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x)) (Neg.neg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasNeg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (Neg.neg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (NegZeroClass.toNeg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_neg DirectSum.decompose_negₓ'. -/
@[simp]
theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x :=
@@ -316,10 +283,7 @@ theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x :=
#align direct_sum.decompose_neg DirectSum.decompose_neg
/- warning: direct_sum.decompose_symm_neg -> DirectSum.decompose_symm_neg is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (Neg.neg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasNeg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))) x)) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (Neg.neg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (NegZeroClass.toNeg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionCommMonoid.toSubtractionMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toDivisionAddCommMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_negₓ'. -/
@[simp]
theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(decompose ℳ).symm x :=
@@ -327,10 +291,7 @@ theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(de
#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_neg
/- warning: direct_sum.decompose_sub -> DirectSum.decompose_sub is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M) (y : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) y))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (instHSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegMonoid.toSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddGroup.toSubNegMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toAddGroup.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sub DirectSum.decompose_subₓ'. -/
@[simp]
theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - decompose ℳ y :=
@@ -338,10 +299,7 @@ theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - deco
#align direct_sum.decompose_sub DirectSum.decompose_sub
/- warning: direct_sum.decompose_symm_sub -> DirectSum.decompose_symm_sub is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (y : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) y))
-but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (instHSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegMonoid.toSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddGroup.toSubNegMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toAddGroup.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sub DirectSum.decompose_symm_subₓ'. -/
@[simp]
theorem decompose_symm_sub (x y : ⨁ i, ℳ i) :
@@ -376,10 +334,7 @@ def decomposeLinearEquiv : M ≃ₗ[R] ⨁ i, ℳ i :=
#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquiv
/- warning: direct_sum.decompose_smul -> DirectSum.decompose_smul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u2, u3} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ] (r : R) (x : M), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u3) (succ (max u1 u3))) (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R _inst_2) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u2, u3} R M _inst_2 _inst_3 _inst_4)))) r x)) (SMul.smul.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (SMulWithZero.toSmulZeroClass.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (MulActionWithZero.toSMulWithZero.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (Semiring.toMonoidWithZero.{u2} R _inst_2) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (Module.toMulActionWithZero.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _inst_2 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.module.{u2, u1, u3} R _inst_2 ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)) (fun (i : ι) => Submodule.module.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))))))) r (coeFn.{max 1 (max (succ u3) (succ (max u1 u3))) (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) x))
-but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ] (r : R) (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instHSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (SMulZeroClass.toSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (SMulWithZero.toSMulZeroClass.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (MulActionWithZero.toSMulWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (Module.toMulActionWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) _inst_2 (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u2} R _inst_2 ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)) (fun (i : ι) => Submodule.module.{u1, u2} R M _inst_2 _inst_3 _inst_4 (ℳ i)))))))) r (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) x))
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_smul DirectSum.decompose_smulₓ'. -/
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Jujian Zhang
! This file was ported from Lean 3 source module algebra.direct_sum.decomposition
-! leanprover-community/mathlib commit 4e861f25ba5ceef42ba0712d8ffeb32f38ad6441
+! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
! 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.Module.Submodule.Basic
/-!
# Decompositions of additive monoids, groups, and modules into direct sums
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
## Main definitions
* `direct_sum.decomposition ℳ`: A typeclass to provide a constructive decomposition from
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -119,7 +119,7 @@ protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u2) (succ (max u1 u2))} (M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.Decomposition.decompose'.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i) _inst_5) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} (M -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.Decomposition.decompose'.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} (M -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.Decomposition.decompose'.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5))
Case conversion may be inaccurate. Consider using '#align direct_sum.decomposition.decompose'_eq DirectSum.Decomposition.decompose'_eqₓ'. -/
@[simp]
theorem Decomposition.decompose'_eq : Decomposition.decompose' = decompose ℳ :=
@@ -130,7 +130,7 @@ theorem Decomposition.decompose'_eq : Decomposition.decompose' = decompose ℳ :
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) x)
but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (a : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), succ u3} (Equiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (a : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), succ u3} (Equiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_of DirectSum.decompose_symm_ofₓ'. -/
@[simp]
theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum.of _ i x) = x :=
@@ -141,7 +141,7 @@ theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) x)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)
but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_coe DirectSum.decompose_coeₓ'. -/
@[simp]
theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.of _ i x := by
@@ -152,7 +152,7 @@ theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.o
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} (hx : Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) x hx))
but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} (hx : Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) (Subtype.mk.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) x hx))
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} (hx : Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) (Subtype.mk.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) x hx))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem DirectSum.decompose_of_memₓ'. -/
theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
decompose ℳ x = DirectSum.of (fun i => ℳ i) i ⟨x, hx⟩ :=
@@ -163,7 +163,7 @@ theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι}, (Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) -> (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) i)) x)
but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) i)) x)
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) i)) x)
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_sameₓ'. -/
theorem decompose_of_mem_same {x : M} {i : ι} (hx : x ∈ ℳ i) : (decompose ℳ x i : M) = x := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_same, Subtype.coe_mk]
@@ -173,7 +173,7 @@ theorem decompose_of_mem_same {x : M} {i : ι} (hx : x ∈ ℳ i) : (decompose
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} {j : ι}, (Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) -> (Ne.{succ u1} ι i j) -> (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ j)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) j)) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))))
but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} {j : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Ne.{succ u1} ι i j) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ j))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) j)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)))))
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} {j : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Ne.{succ u1} ι i j) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ j))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) j)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)))))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_neₓ'. -/
theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j) :
(decompose ℳ x j : M) = 0 := by
@@ -197,7 +197,7 @@ def decomposeAddEquiv : M ≃+ ⨁ i, ℳ i :=
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (OfNat.ofNat.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) 0 (Zero.toOfNat0.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (OfNat.ofNat.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) 0 (Zero.toOfNat0.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_zero DirectSum.decompose_zeroₓ'. -/
@[simp]
theorem decompose_zero : decompose ℳ (0 : M) = 0 :=
@@ -208,7 +208,7 @@ theorem decompose_zero : decompose ℳ (0 : M) = 0 :=
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
but is expected to have type
- forall {ι : Type.{u2}} {M : Type.{u3}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u1, u3} σ M] [_inst_4 : AddSubmonoidClass.{u1, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (Equiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u2) (succ u3)} M (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))
+ forall {ι : Type.{u2}} {M : Type.{u3}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u1, u3} σ M] [_inst_4 : AddSubmonoidClass.{u1, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (Equiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u2) (succ u3)} M (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_zero DirectSum.decompose_symm_zeroₓ'. -/
@[simp]
theorem decompose_symm_zero : (decompose ℳ).symm 0 = (0 : M) :=
@@ -219,7 +219,7 @@ theorem decompose_symm_zero : (decompose ℳ).symm 0 = (0 : M) :=
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : M) (y : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) y))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instHAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddZeroClass.toAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddMonoid.toAddZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) y))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instHAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddZeroClass.toAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddMonoid.toAddZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) y))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_add DirectSum.decompose_addₓ'. -/
@[simp]
theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + decompose ℳ y :=
@@ -230,7 +230,7 @@ theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + deco
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (y : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) x) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) y))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddZeroClass.toAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) y))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddZeroClass.toAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) y))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_add DirectSum.decompose_symm_addₓ'. -/
@[simp]
theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
@@ -242,7 +242,7 @@ theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (Finset.sum.{max u1 u2, u4} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (f i)))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (f i)))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (f i)))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sum DirectSum.decompose_sumₓ'. -/
@[simp]
theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
@@ -254,7 +254,7 @@ theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (Finset.sum.{max u1 u2, u4} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (f i)))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (f i)))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (f i)))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sumₓ'. -/
@[simp]
theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
@@ -266,7 +266,7 @@ theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] [_inst_6 : forall (i : ι) (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Decidable (Ne.{succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) x (OfNat.ofNat.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) 0 (OfNat.mk.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) 0 (Zero.zero.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (ZeroMemClass.zero.{u3, u2} σ M _inst_3 (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddSubmonoidClass.to_zeroMemClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))))))] (r : M), Eq.{succ u2} M (Finset.sum.{u2, u1} M ι _inst_2 (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)))) (fun (i : ι) (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) => _inst_6 i x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r)) (fun (i : ι) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r) i))) r
but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] [_inst_6 : forall (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Decidable (Ne.{succ u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) x (OfNat.ofNat.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) 0 (Zero.toOfNat0.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (ZeroMemClass.zero.{u2, u3} σ M _inst_3 (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (AddSubmonoidClass.toZeroMemClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3 _inst_4) (ℳ i)))))] (r : M), Eq.{succ u3} M (Finset.sum.{u3, u1} M ι _inst_2 (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (fun (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => _inst_6 i x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r)) (fun (i : ι) => Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r) i))) r
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] [_inst_6 : forall (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Decidable (Ne.{succ u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) x (OfNat.ofNat.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) 0 (Zero.toOfNat0.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (ZeroMemClass.zero.{u2, u3} σ M _inst_3 (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (AddSubmonoidClass.toZeroMemClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3 _inst_4) (ℳ i)))))] (r : M), Eq.{succ u3} M (Finset.sum.{u3, u1} M ι _inst_2 (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (fun (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => _inst_6 i x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r)) (fun (i : ι) => Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r) i))) r
Case conversion may be inaccurate. Consider using '#align direct_sum.sum_support_decompose DirectSum.sum_support_decomposeₓ'. -/
theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M) :
(∑ i in (decompose ℳ r).support, (decompose ℳ r i : M)) = r :=
@@ -305,7 +305,7 @@ include M
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x)) (Neg.neg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasNeg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (Neg.neg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (NegZeroClass.toNeg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (Neg.neg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (NegZeroClass.toNeg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_neg DirectSum.decompose_negₓ'. -/
@[simp]
theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x :=
@@ -316,7 +316,7 @@ theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x :=
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (Neg.neg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasNeg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))) x)) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (Neg.neg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (NegZeroClass.toNeg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionCommMonoid.toSubtractionMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toDivisionAddCommMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (Neg.neg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (NegZeroClass.toNeg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionCommMonoid.toSubtractionMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toDivisionAddCommMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_negₓ'. -/
@[simp]
theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(decompose ℳ).symm x :=
@@ -327,7 +327,7 @@ theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(de
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M) (y : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) y))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (instHSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegMonoid.toSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddGroup.toSubNegMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toAddGroup.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) y))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (instHSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegMonoid.toSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddGroup.toSubNegMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toAddGroup.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) y))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sub DirectSum.decompose_subₓ'. -/
@[simp]
theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - decompose ℳ y :=
@@ -338,7 +338,7 @@ theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - deco
lean 3 declaration is
forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (y : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) y))
but is expected to have type
- forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (instHSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegMonoid.toSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddGroup.toSubNegMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toAddGroup.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) y))
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (instHSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegMonoid.toSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddGroup.toSubNegMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toAddGroup.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) y))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sub DirectSum.decompose_symm_subₓ'. -/
@[simp]
theorem decompose_symm_sub (x y : ⨁ i, ℳ i) :
@@ -376,7 +376,7 @@ def decomposeLinearEquiv : M ≃ₗ[R] ⨁ i, ℳ i :=
lean 3 declaration is
forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u2, u3} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ] (r : R) (x : M), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u3) (succ (max u1 u3))) (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R _inst_2) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u2, u3} R M _inst_2 _inst_3 _inst_4)))) r x)) (SMul.smul.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (SMulWithZero.toSmulZeroClass.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (MulActionWithZero.toSMulWithZero.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (Semiring.toMonoidWithZero.{u2} R _inst_2) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (Module.toMulActionWithZero.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _inst_2 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.module.{u2, u1, u3} R _inst_2 ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)) (fun (i : ι) => Submodule.module.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))))))) r (coeFn.{max 1 (max (succ u3) (succ (max u1 u3))) (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) x))
but is expected to have type
- forall {ι : Type.{u3}} {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ] (r : R) (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instHSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (SMulZeroClass.toSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (SMulWithZero.toSMulZeroClass.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (MulActionWithZero.toSMulWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (Module.toMulActionWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) _inst_2 (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u2} R _inst_2 ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)) (fun (i : ι) => Submodule.module.{u1, u2} R M _inst_2 _inst_3 _inst_4 (ℳ i)))))))) r (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) x))
+ forall {ι : Type.{u3}} {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ] (r : R) (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instHSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (SMulZeroClass.toSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (SMulWithZero.toSMulZeroClass.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (MulActionWithZero.toSMulWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (Module.toMulActionWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) _inst_2 (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u2} R _inst_2 ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)) (fun (i : ι) => Submodule.module.{u1, u2} R M _inst_2 _inst_3 _inst_4 (ℳ i)))))))) r (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) x))
Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_smul DirectSum.decompose_smulₓ'. -/
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -46,6 +46,7 @@ variable [DecidableEq ι] [AddCommMonoid M]
variable [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ)
+#print DirectSum.Decomposition /-
/-- A decomposition is an equivalence between an additive monoid `M` and a direct sum of additive
submonoids `ℳ i` of that `M`, such that the "recomposition" is canonical. This definition also
works for additive groups and modules.
@@ -57,6 +58,7 @@ class Decomposition where
left_inv : Function.LeftInverse (DirectSum.coeAddMonoidHom ℳ) decompose'
right_inv : Function.RightInverse (DirectSum.coeAddMonoidHom ℳ) decompose'
#align direct_sum.decomposition DirectSum.Decomposition
+-/
include M
@@ -70,10 +72,17 @@ instance : Subsingleton (Decomposition ℳ) :=
variable [Decomposition ℳ]
+/- warning: direct_sum.decomposition.is_internal -> DirectSum.Decomposition.isInternal is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], DirectSum.IsInternal.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], DirectSum.IsInternal.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ
+Case conversion may be inaccurate. Consider using '#align direct_sum.decomposition.is_internal DirectSum.Decomposition.isInternalₓ'. -/
protected theorem Decomposition.isInternal : DirectSum.IsInternal ℳ :=
⟨Decomposition.right_inv.Injective, Decomposition.left_inv.Surjective⟩
#align direct_sum.decomposition.is_internal DirectSum.Decomposition.isInternal
+#print DirectSum.decompose /-
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
to a direct sum of components. This is the canonical spelling of the `decompose'` field. -/
def decompose : M ≃ ⨁ i, ℳ i where
@@ -82,7 +91,14 @@ def decompose : M ≃ ⨁ i, ℳ i where
left_inv := Decomposition.left_inv
right_inv := Decomposition.right_inv
#align direct_sum.decompose DirectSum.decompose
+-/
+/- warning: direct_sum.decomposition.induction_on -> DirectSum.Decomposition.inductionOn is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {p : M -> Prop}, (p (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) -> (forall {i : ι} (m : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), p ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) m)) -> (forall (m : M) (m' : M), (p m) -> (p m') -> (p (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) m m'))) -> (forall (m : M), p m)
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {p : M -> Prop}, (p (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) -> (forall {i : ι} (m : Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))), p (Subtype.val.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Set.{u2} M) (Set.instMembershipSet.{u2} M) x (SetLike.coe.{u1, u2} σ M _inst_3 (ℳ i))) m)) -> (forall (m : M) (m' : M), (p m) -> (p m') -> (p (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) m m'))) -> (forall (m : M), p m)
+Case conversion may be inaccurate. Consider using '#align direct_sum.decomposition.induction_on DirectSum.Decomposition.inductionOnₓ'. -/
protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
(h_homogeneous : ∀ {i} (m : ℳ i), p (m : M)) (h_add : ∀ m m' : M, p m → p m' → p (m + m')) :
∀ m, p m :=
@@ -99,35 +115,77 @@ protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
AddSubmonoid.iSup_induction ℳ' (mem m) (fun i m h => h_homogeneous ⟨m, h⟩) h_zero h_add
#align direct_sum.decomposition.induction_on DirectSum.Decomposition.inductionOn
+/- warning: direct_sum.decomposition.decompose'_eq -> DirectSum.Decomposition.decompose'_eq is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u2) (succ (max u1 u2))} (M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.Decomposition.decompose'.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i) _inst_5) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} (M -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.Decomposition.decompose'.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i) _inst_5) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decomposition.decompose'_eq DirectSum.Decomposition.decompose'_eqₓ'. -/
@[simp]
theorem Decomposition.decompose'_eq : Decomposition.decompose' = decompose ℳ :=
rfl
#align direct_sum.decomposition.decompose'_eq DirectSum.Decomposition.decompose'_eq
+/- warning: direct_sum.decompose_symm_of -> DirectSum.decompose_symm_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) x)
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (a : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) a) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (FunLike.coe.{max (succ u1) (succ u3), max (succ u1) (succ u3), succ u3} (Equiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u1) (succ u3), succ u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_of DirectSum.decompose_symm_ofₓ'. -/
@[simp]
theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum.of _ i x) = x :=
DirectSum.coeAddMonoidHom_of ℳ _ _
#align direct_sum.decompose_symm_of DirectSum.decompose_symm_of
+/- warning: direct_sum.decompose_coe -> DirectSum.decompose_coe is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) x)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun {i : ι} => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {i : ι} (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) x)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) x)
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_coe DirectSum.decompose_coeₓ'. -/
@[simp]
theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.of _ i x := by
rw [← decompose_symm_of, Equiv.apply_symm_apply]
#align direct_sum.decompose_coe DirectSum.decompose_coe
+/- warning: direct_sum.decompose_of_mem -> DirectSum.decompose_of_mem is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} (hx : Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) => (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) -> (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (i : ι) => (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) (Subtype.mk.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) x hx))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} (hx : Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)), Eq.{max (succ u1) (succ u3)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (_x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (AddHomClass.toFunLike.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddZeroClass.toAdd.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (AddMonoidHomClass.toAddHomClass.{max u1 u3, u3, max u1 u3} (AddMonoidHom.{u3, max u3 u1} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))) (AddMonoidHom.addMonoidHomClass.{u3, max u1 u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddCommMonoid.toAddMonoid.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i) (Subtype.mk.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) x hx))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem DirectSum.decompose_of_memₓ'. -/
theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
decompose ℳ x = DirectSum.of (fun i => ℳ i) i ⟨x, hx⟩ :=
decompose_coe _ ⟨x, hx⟩
#align direct_sum.decompose_of_mem DirectSum.decompose_of_mem
+/- warning: direct_sum.decompose_of_mem_same -> DirectSum.decompose_of_mem_same is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι}, (Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) -> (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) i)) x)
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) i)) x)
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_sameₓ'. -/
theorem decompose_of_mem_same {x : M} {i : ι} (hx : x ∈ ℳ i) : (decompose ℳ x i : M) = x := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_same, Subtype.coe_mk]
#align direct_sum.decompose_of_mem_same DirectSum.decompose_of_mem_same
+/- warning: direct_sum.decompose_of_mem_ne -> DirectSum.decompose_of_mem_ne is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} {j : ι}, (Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)) -> (Ne.{succ u1} ι i j) -> (Eq.{succ u2} M ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ j)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ j)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) j)) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {x : M} {i : ι} {j : ι}, (Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i)) -> (Ne.{succ u1} ι i j) -> (Eq.{succ u3} M (Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ j))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) j)) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_neₓ'. -/
theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j) :
(decompose ℳ x j : M) = 0 := by
rw [decompose_of_mem _ hx, DirectSum.of_eq_of_ne _ _ _ _ hij, ZeroMemClass.coe_zero]
#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_ne
+/- warning: direct_sum.decompose_add_equiv -> DirectSum.decomposeAddEquiv is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], AddEquiv.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], AddEquiv.{u2, max u2 u1} M (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u3} M σ (SetLike.instMembership.{u3, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_add_equiv DirectSum.decomposeAddEquivₓ'. -/
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
an additive monoid to a direct sum of components. -/
@[simps (config := { fullyApplied := false })]
@@ -135,39 +193,81 @@ def decomposeAddEquiv : M ≃+ ⨁ i, ℳ i :=
AddEquiv.symm { (decompose ℳ).symm with map_add' := map_add (DirectSum.coeAddMonoidHom ℳ) }
#align direct_sum.decompose_add_equiv DirectSum.decomposeAddEquiv
+/- warning: direct_sum.decompose_zero -> DirectSum.decompose_zero is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (OfNat.ofNat.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) 0 (Zero.toOfNat0.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_zero DirectSum.decompose_zeroₓ'. -/
@[simp]
theorem decompose_zero : decompose ℳ (0 : M) = 0 :=
map_zero (decomposeAddEquiv ℳ)
#align direct_sum.decompose_zero DirectSum.decompose_zero
+/- warning: direct_sum.decompose_symm_zero -> DirectSum.decompose_symm_zero is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))))) (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))
+but is expected to have type
+ forall {ι : Type.{u2}} {M : Type.{u3}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u1, u3} σ M] [_inst_4 : AddSubmonoidClass.{u1, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ], Eq.{succ u3} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (Equiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u3), succ u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u3, max (succ u2) (succ u3)} M (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u2, u3, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (OfNat.ofNat.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) 0 (Zero.toOfNat0.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toZero.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u2 u3} (DirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u2, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u1} M σ (SetLike.instMembership.{u1, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))))))) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_zero DirectSum.decompose_symm_zeroₓ'. -/
@[simp]
theorem decompose_symm_zero : (decompose ℳ).symm 0 = (0 : M) :=
map_zero (decomposeAddEquiv ℳ).symm
#align direct_sum.decompose_symm_zero DirectSum.decompose_symm_zero
+/- warning: direct_sum.decompose_add -> DirectSum.decompose_add is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : M) (y : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) y))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) x y)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instHAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddZeroClass.toAdd.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddMonoid.toAddZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) y))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_add DirectSum.decompose_addₓ'. -/
@[simp]
theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + decompose ℳ y :=
map_add (decomposeAddEquiv ℳ) x y
#align direct_sum.decompose_add DirectSum.decompose_add
+/- warning: direct_sum.decompose_symm_add -> DirectSum.decompose_symm_add is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (y : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (HAdd.hAdd.{u2, u2, u2} M M M (instHAdd.{u2} M (AddZeroClass.toHasAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) x) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) y))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instHAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))))))) x y)) (HAdd.hAdd.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (instHAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddZeroClass.toAdd.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) y))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_add DirectSum.decompose_symm_addₓ'. -/
@[simp]
theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
(decompose ℳ).symm (x + y) = (decompose ℳ).symm x + (decompose ℳ).symm y :=
map_add (decomposeAddEquiv ℳ).symm x y
#align direct_sum.decompose_symm_add DirectSum.decompose_symm_add
+/- warning: direct_sum.decompose_sum -> DirectSum.decompose_sum is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (Finset.sum.{max u1 u2, u4} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (f i)))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => f i))) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) (f i)))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sum DirectSum.decompose_sumₓ'. -/
@[simp]
theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
decompose ℳ (∑ i in s, f i) = ∑ i in s, decompose ℳ (f i) :=
map_sum (decomposeAddEquiv ℳ) f s
#align direct_sum.decompose_sum DirectSum.decompose_sum
+/- warning: direct_sum.decompose_symm_sum -> DirectSum.decompose_symm_sum is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (Finset.sum.{max u1 u2, u4} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (f i)))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubmonoidClass.{u1, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] {ι' : Type.{u4}} (s : Finset.{u4} ι') (f : ι' -> (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (Finset.sum.{max u3 u2, u4} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) ι' (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) s (fun (i : ι') => f i))) (Finset.sum.{u2, u4} M ι' _inst_2 s (fun (i : ι') => FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5)) (f i)))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sumₓ'. -/
@[simp]
theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
(decompose ℳ).symm (∑ i in s, f i) = ∑ i in s, (decompose ℳ).symm (f i) :=
map_sum (decomposeAddEquiv ℳ).symm f s
#align direct_sum.decompose_symm_sum DirectSum.decompose_symm_sum
+/- warning: direct_sum.sum_support_decompose -> DirectSum.sum_support_decompose is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubmonoidClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] [_inst_6 : forall (i : ι) (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)), Decidable (Ne.{succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) x (OfNat.ofNat.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) 0 (OfNat.mk.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) 0 (Zero.zero.{u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (ZeroMemClass.zero.{u3, u2} σ M _inst_3 (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (AddSubmonoidClass.to_zeroMemClass.{u3, u2} σ M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))))))] (r : M), Eq.{succ u2} M (Finset.sum.{u2, u1} M ι _inst_2 (Dfinsupp.support.{u1, u2} ι (fun (i : ι) => (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => AddZeroClass.toHasZero.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddMonoid.toAddZeroClass.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i)))) (fun (i : ι) (x : coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) => _inst_6 i x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r)) (fun (i : ι) => (fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (HasLiftT.mk.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (CoeTCₓ.coe.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeBase.{succ u2, succ u2} (coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) M (coeSubtype.{succ u2} M (fun (x : M) => Membership.Mem.{u2, u3} M σ (SetLike.hasMem.{u3, u2} σ M _inst_3) x (ℳ i)))))) (coeFn.{succ (max u1 u2), max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (fun (_x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) => forall (i : ι), coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (DirectSum.hasCoeToFun.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r) i))) r
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u3}} {σ : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : SetLike.{u2, u3} σ M] [_inst_4 : AddSubmonoidClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ] [_inst_6 : forall (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))), Decidable (Ne.{succ u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) x (OfNat.ofNat.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) 0 (Zero.toOfNat0.{u3} (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (ZeroMemClass.zero.{u2, u3} σ M _inst_3 (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (AddSubmonoidClass.toZeroMemClass.{u2, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) _inst_3 _inst_4) (ℳ i)))))] (r : M), Eq.{succ u3} M (Finset.sum.{u3, u1} M ι _inst_2 (Dfinsupp.support.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) (fun (i : ι) (x : Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) => _inst_6 i x) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r)) (fun (i : ι) => Subtype.val.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Set.{u3} M) (Set.instMembershipSet.{u3} M) x (SetLike.coe.{u2, u3} σ M _inst_3 (ℳ i))) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (Dfinsupp.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) ι (fun (_x : ι) => (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) _x) (Dfinsupp.funLike.{u1, u3} ι (fun (i : ι) => (fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (fun (i : ι) => (fun (i : ι) => AddMonoid.toZero.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) (AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) i) i) ((fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)) i))) i)) (FunLike.coe.{max (succ u1) (succ u3), succ u3, max (succ u1) (succ u3)} (Equiv.{succ u3, max (succ u3) (succ u1)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u3, max (succ u1) (succ u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u2} M σ (SetLike.instMembership.{u2, u3} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u2} M _inst_2 σ _inst_3 _inst_4 (ℳ i)))) (DirectSum.decompose.{u1, u3, u2} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 ℳ _inst_5) r) i))) r
+Case conversion may be inaccurate. Consider using '#align direct_sum.sum_support_decompose DirectSum.sum_support_decomposeₓ'. -/
theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M) :
(∑ i in (decompose ℳ r).support, (decompose ℳ r i : M)) = r :=
by
@@ -179,6 +279,7 @@ theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M)
end AddCommMonoid
+#print DirectSum.addCommGroupSetLike /-
/-- The `-` in the statements below doesn't resolve without this line.
This seems to a be a problem of synthesized vs inferred typeclasses disagreeing. If we replace
@@ -188,6 +289,7 @@ be found by unification rather than synthesis, then everything works fine withou
instance addCommGroupSetLike [AddCommGroup M] [SetLike σ M] [AddSubgroupClass σ M] (ℳ : ι → σ) :
AddCommGroup (⨁ i, ℳ i) := by infer_instance
#align direct_sum.add_comm_group_set_like DirectSum.addCommGroupSetLike
+-/
section AddCommGroup
@@ -199,21 +301,45 @@ variable [Decomposition ℳ]
include M
+/- warning: direct_sum.decompose_neg -> DirectSum.decompose_neg is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x)) (Neg.neg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasNeg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (Neg.neg.{u2} M (NegZeroClass.toNeg.{u2} M (SubNegZeroMonoid.toNegZeroClass.{u2} M (SubtractionMonoid.toSubNegZeroMonoid.{u2} M (SubtractionCommMonoid.toSubtractionMonoid.{u2} M (AddCommGroup.toDivisionAddCommMonoid.{u2} M _inst_2))))) x)) (Neg.neg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (NegZeroClass.toNeg.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_neg DirectSum.decompose_negₓ'. -/
@[simp]
theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x :=
map_neg (decomposeAddEquiv ℳ) x
#align direct_sum.decompose_neg DirectSum.decompose_neg
+/- warning: direct_sum.decompose_symm_neg -> DirectSum.decompose_symm_neg is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (Neg.neg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasNeg.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))) x)) (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (Neg.neg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (NegZeroClass.toNeg.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegZeroMonoid.toNegZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionMonoid.toSubNegZeroMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubtractionCommMonoid.toSubtractionMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toDivisionAddCommMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i))))))) x)) (Neg.neg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (NegZeroClass.toNeg.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegZeroMonoid.toNegZeroClass.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionMonoid.toSubNegZeroMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubtractionCommMonoid.toSubtractionMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toDivisionAddCommMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2))))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_negₓ'. -/
@[simp]
theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(decompose ℳ).symm x :=
map_neg (decomposeAddEquiv ℳ).symm x
#align direct_sum.decompose_symm_neg DirectSum.decompose_symm_neg
+/- warning: direct_sum.decompose_sub -> DirectSum.decompose_sub is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M) (y : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x) (coeFn.{max 1 (max (succ u2) (succ (max u1 u2))) (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) y))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : M) (y : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (instHSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (SubNegMonoid.toSub.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddGroup.toSubNegMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (AddCommGroup.toAddGroup.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) x) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) x) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5) y))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_sub DirectSum.decompose_subₓ'. -/
@[simp]
theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - decompose ℳ y :=
map_sub (decomposeAddEquiv ℳ) x y
#align direct_sum.decompose_sub DirectSum.decompose_sub
+/- warning: direct_sum.decompose_symm_sub -> DirectSum.decompose_symm_sub is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} {σ : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u3, u2} σ M] [_inst_4 : AddSubgroupClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (y : DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) i) (AddSubgroupClass.toAddCommGroup.{u3, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} M (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (instHSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (SubNegMonoid.toHasSub.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddGroup.toSubNegMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (AddCommGroup.toAddGroup.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommGroupSetLike.{u1, u2, u3} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x) (coeFn.{max 1 (max (succ (max u1 u2)) (succ u2)) (succ u2) (succ (max u1 u2)), max (succ (max u1 u2)) (succ u2)} (Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (fun (_x : Equiv.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) => (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) -> M) (Equiv.hasCoeToFun.{succ (max u1 u2), succ u2} (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, succ (max u1 u2)} M (DirectSum.{u1, u2} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u2)} σ Type.{u2} (SetLike.hasCoeToSort.{u3, u2} σ M _inst_3) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u3} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u1, u2, u3} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.to_addSubmonoidClass.{u3, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) y))
+but is expected to have type
+ forall {ι : Type.{u3}} {M : Type.{u2}} {σ : Type.{u1}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : SetLike.{u1, u2} σ M] [_inst_4 : AddSubgroupClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3] (ℳ : ι -> σ) [_inst_5 : DirectSum.Decomposition.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ] (x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (y : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))), Eq.{succ u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) (HSub.hSub.{max u3 u2, max u3 u2, max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (instHSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (SubNegMonoid.toSub.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddGroup.toSubNegMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (AddCommGroup.toAddGroup.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddCommGroup.toAddCommMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) i) (AddSubgroupClass.toAddCommGroup.{u1, u2} σ (ℳ i) M _inst_2 _inst_3 _inst_4))) (DirectSum.addCommGroupSetLike.{u3, u2, u1} ι M σ _inst_2 _inst_3 _inst_4 (fun (i : ι) => ℳ i)))))) x y)) (HSub.hSub.{u2, u2, u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) y) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (instHSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (SubNegMonoid.toSub.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddGroup.toSubNegMonoid.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) (AddCommGroup.toAddGroup.{u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) x) _inst_2)))) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) x) (FunLike.coe.{max (succ u3) (succ u2), max (succ u3) (succ u2), succ u2} (Equiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) => M) _x) (Equiv.instFunLikeEquiv.{max (succ u3) (succ u2), succ u2} (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) M) (Equiv.symm.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u1} M σ (SetLike.instMembership.{u1, u2} σ M _inst_3) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u1} M (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) σ _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) (ℳ i))) (DirectSum.decompose.{u3, u2, u1} ι M σ (fun (a : ι) (b : ι) => _inst_1 a b) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (AddSubgroupClass.toAddSubmonoidClass.{u1, u2} σ M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)) _inst_3 _inst_4) ℳ _inst_5)) y))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_symm_sub DirectSum.decompose_symm_subₓ'. -/
@[simp]
theorem decompose_symm_sub (x y : ⨁ i, ℳ i) :
(decompose ℳ).symm (x - y) = (decompose ℳ).symm x - (decompose ℳ).symm y :=
@@ -232,6 +358,12 @@ variable [Decomposition ℳ]
include M
+/- warning: direct_sum.decompose_linear_equiv -> DirectSum.decomposeLinearEquiv is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u2, u3} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ], LinearEquiv.{u2, u2, u3, max u1 u3} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_3 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_4 (DirectSum.module.{u2, u1, u3} R _inst_2 ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)) (fun (i : ι) => Submodule.module.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)))
+but is expected to have type
+ forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u2, u3} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ], LinearEquiv.{u2, u2, u3, max u3 u1} R R _inst_2 _inst_2 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_2)) (RingHomInvPair.ids.{u2} R _inst_2) (RingHomInvPair.ids.{u2} R _inst_2) M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_3 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))) _inst_4 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u2, u1, u3} R _inst_2 ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => Submodule.addCommMonoid.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)) (fun (i : ι) => Submodule.module.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i)))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquivₓ'. -/
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
a module to a direct sum of components. -/
@[simps (config := { fullyApplied := false })]
@@ -240,6 +372,12 @@ def decomposeLinearEquiv : M ≃ₗ[R] ⨁ i, ℳ i :=
{ (decomposeAddEquiv ℳ).symm with map_smul' := map_smul (DirectSum.coeLinearMap ℳ) }
#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquiv
+/- warning: direct_sum.decompose_smul -> DirectSum.decompose_smul is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u2, u3} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ] (r : R) (x : M), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (coeFn.{max 1 (max (succ u3) (succ (max u1 u3))) (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) (SMul.smul.{u2, u3} R M (SMulZeroClass.toHasSmul.{u2, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u2, u3} R M (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u2, u3} R M (Semiring.toMonoidWithZero.{u2} R _inst_2) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u2, u3} R M _inst_2 _inst_3 _inst_4)))) r x)) (SMul.smul.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (SMulZeroClass.toHasSmul.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (SMulWithZero.toSmulZeroClass.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (MulZeroClass.toHasZero.{u2} R (MulZeroOneClass.toMulZeroClass.{u2} R (MonoidWithZero.toMulZeroOneClass.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_2)))) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (MulActionWithZero.toSMulWithZero.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (Semiring.toMonoidWithZero.{u2} R _inst_2) (AddZeroClass.toHasZero.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))))) (Module.toMulActionWithZero.{u2, max u1 u3} R (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _inst_2 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.module.{u2, u1, u3} R _inst_2 ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)) (fun (i : ι) => Submodule.module.{u2, u3} R M _inst_2 _inst_3 _inst_4 (ℳ i))))))) r (coeFn.{max 1 (max (succ u3) (succ (max u1 u3))) (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (fun (_x : Equiv.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) => M -> (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (Equiv.hasCoeToFun.{succ u3, succ (max u1 u3)} M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u3, succ (succ u3)} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) Type.{u3} (SetLike.hasCoeToSort.{u3, u3} (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4)) (ℳ i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u3} M _inst_3 (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u1, u3, u3} ι M (Submodule.{u2, u3} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u2, u3} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u2, u3} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) x))
+but is expected to have type
+ forall {ι : Type.{u3}} {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u3} ι] [_inst_2 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_2 _inst_3] (ℳ : ι -> (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4)) [_inst_5 : DirectSum.Decomposition.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ] (r : R) (x : M), Eq.{max (succ u3) (succ u2)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) (HSMul.hSMul.{u1, u2, u2} R M M (instHSMul.{u1, u2} R M (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u1, u2} R M _inst_2 _inst_3 _inst_4))))) r x)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instHSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (SMulZeroClass.toSMul.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (SMulWithZero.toSMulZeroClass.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_2)) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (MulActionWithZero.toSMulWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (Semiring.toMonoidWithZero.{u1} R _inst_2) (AddMonoid.toZero.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (AddCommMonoid.toAddMonoid.{max u3 u2} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))))) (Module.toMulActionWithZero.{u1, max u3 u2} R ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) x) _inst_2 (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u2} R _inst_2 ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)) (fun (i : ι) => Submodule.module.{u1, u2} R M _inst_2 _inst_3 _inst_4 (ℳ i)))))))) r (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (Equiv.{succ u2, max (succ u2) (succ u3)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) M (fun (_x : M) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : M) => DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i))) _x) (Equiv.instFunLikeEquiv.{succ u2, max (succ u3) (succ u2)} M (DirectSum.{u3, u2} ι (fun (i : ι) => Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4)) x (ℳ i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u2, u2} M _inst_3 (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) (ℳ i)))) (DirectSum.decompose.{u3, u2, u2} ι M (Submodule.{u1, u2} R M _inst_2 _inst_3 _inst_4) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (Submodule.setLike.{u1, u2} R M _inst_2 _inst_3 _inst_4) (Submodule.addSubmonoidClass.{u1, u2} R M _inst_2 _inst_3 _inst_4) ℳ _inst_5) x))
+Case conversion may be inaccurate. Consider using '#align direct_sum.decompose_smul DirectSum.decompose_smulₓ'. -/
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x :=
map_smul (decomposeLinearEquiv ℳ) r x
mathlib commit https://github.com/leanprover-community/mathlib/commit/e3fb84046afd187b710170887195d50bada934ee
@@ -93,10 +93,10 @@ protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
{ decompose' := DirectSum.decompose ℳ
left_inv := fun _ => (decompose ℳ).left_inv _
right_inv := fun _ => (decompose ℳ).right_inv _ }
- have mem : ∀ m, m ∈ supᵢ ℳ' := fun m =>
- (DirectSum.IsInternal.addSubmonoid_supᵢ_eq_top ℳ' (decomposition.is_internal ℳ')).symm ▸ trivial
+ have mem : ∀ m, m ∈ iSup ℳ' := fun m =>
+ (DirectSum.IsInternal.addSubmonoid_iSup_eq_top ℳ' (decomposition.is_internal ℳ')).symm ▸ trivial
exact fun m =>
- AddSubmonoid.supᵢ_induction ℳ' (mem m) (fun i m h => h_homogeneous ⟨m, h⟩) h_zero h_add
+ AddSubmonoid.iSup_induction ℳ' (mem m) (fun i m h => h_homogeneous ⟨m, h⟩) h_zero h_add
#align direct_sum.decomposition.induction_on DirectSum.Decomposition.inductionOn
@[simp]
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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)
@@ -40,7 +40,6 @@ namespace DirectSum
section AddCommMonoid
variable [DecidableEq ι] [AddCommMonoid M]
-
variable [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ)
/-- A decomposition is an equivalence between an additive monoid `M` and a direct sum of additive
@@ -219,9 +218,7 @@ instance addCommGroupSetLike [AddCommGroup M] [SetLike σ M] [AddSubgroupClass
section AddCommGroup
variable [DecidableEq ι] [AddCommGroup M]
-
variable [SetLike σ M] [AddSubgroupClass σ M] (ℳ : ι → σ)
-
variable [Decomposition ℳ]
@[simp]
@@ -250,7 +247,6 @@ end AddCommGroup
section Module
variable [DecidableEq ι] [Semiring R] [AddCommMonoid M] [Module R M]
-
variable (ℳ : ι → Submodule R M)
/-- A convenience method to construct a decomposition from an `LinearMap`, such that the proofs
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>
@@ -72,8 +72,8 @@ abbrev Decomposition.ofAddHom (decompose : M →+ ⨁ i, ℳ i)
(h_left_inv : (DirectSum.coeAddMonoidHom ℳ).comp decompose = .id _)
(h_right_inv : decompose.comp (DirectSum.coeAddMonoidHom ℳ) = .id _) : Decomposition ℳ where
decompose' := decompose
- left_inv := FunLike.congr_fun h_left_inv
- right_inv := FunLike.congr_fun h_right_inv
+ left_inv := DFunLike.congr_fun h_left_inv
+ right_inv := DFunLike.congr_fun h_right_inv
/-- Noncomputably conjure a decomposition instance from a `DirectSum.IsInternal` proof. -/
noncomputable def IsInternal.chooseDecomposition (h : IsInternal ℳ) :
@@ -259,8 +259,8 @@ abbrev Decomposition.ofLinearMap (decompose : M →ₗ[R] ⨁ i, ℳ i)
(h_left_inv : DirectSum.coeLinearMap ℳ ∘ₗ decompose = .id)
(h_right_inv : decompose ∘ₗ DirectSum.coeLinearMap ℳ = .id) : Decomposition ℳ where
decompose' := decompose
- left_inv := FunLike.congr_fun h_left_inv
- right_inv := FunLike.congr_fun h_right_inv
+ left_inv := DFunLike.congr_fun h_left_inv
+ right_inv := DFunLike.congr_fun h_right_inv
variable [Decomposition ℳ]
@@ -294,7 +294,7 @@ theorem decompose_lhom_ext {N} [AddCommMonoid N] [Module R N] ⦃f g : M →ₗ[
LinearMap.ext <| (decomposeLinearEquiv ℳ).symm.surjective.forall.mpr <|
suffices f ∘ₗ (decomposeLinearEquiv ℳ).symm
= (g ∘ₗ (decomposeLinearEquiv ℳ).symm : (⨁ i, ℳ i) →ₗ[R] N) from
- FunLike.congr_fun this
+ DFunLike.congr_fun this
linearMap_ext _ fun i => by
simp_rw [LinearMap.comp_assoc, decomposeLinearEquiv_symm_comp_lof ℳ i, h]
if $x \in M = \bigoplus M_i$ is not $0$ such that $x \in M_i$ and $x \in M_j$, then $i = j$
@@ -143,6 +143,10 @@ theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j
rw [decompose_of_mem _ hx, DirectSum.of_eq_of_ne _ _ _ _ hij, ZeroMemClass.coe_zero]
#align direct_sum.decompose_of_mem_ne DirectSum.decompose_of_mem_ne
+theorem degree_eq_of_mem_mem {x : M} {i j : ι} (hxi : x ∈ ℳ i) (hxj : x ∈ ℳ j) (hx : x ≠ 0) :
+ i = j := by
+ contrapose! hx; rw [← decompose_of_mem_same ℳ hxj, decompose_of_mem_ne ℳ hxi hx]
+
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
an additive monoid to a direct sum of components. -/
-- Porting note: deleted [simps] and added the corresponding lemmas by hand
@@ -48,7 +48,10 @@ submonoids `ℳ i` of that `M`, such that the "recomposition" is canonical. This
works for additive groups and modules.
This is a version of `DirectSum.IsInternal` which comes with a constructive inverse to the
-canonical "recomposition" rather than just a proof that the "recomposition" is bijective. -/
+canonical "recomposition" rather than just a proof that the "recomposition" is bijective.
+
+Often it is easier to construct a term of this type via `Decomposition.ofAddHom` or
+`Decomposition.ofLinearMap`. -/
class Decomposition where
decompose' : M → ⨁ i, ℳ i
left_inv : Function.LeftInverse (DirectSum.coeAddMonoidHom ℳ) decompose'
@@ -63,6 +66,22 @@ instance : Subsingleton (Decomposition ℳ) :=
congr
exact Function.LeftInverse.eq_rightInverse xr yl⟩
+/-- A convenience method to construct a decomposition from an `AddMonoidHom`, such that the proofs
+of left and right inverse can be constructed via `ext`. -/
+abbrev Decomposition.ofAddHom (decompose : M →+ ⨁ i, ℳ i)
+ (h_left_inv : (DirectSum.coeAddMonoidHom ℳ).comp decompose = .id _)
+ (h_right_inv : decompose.comp (DirectSum.coeAddMonoidHom ℳ) = .id _) : Decomposition ℳ where
+ decompose' := decompose
+ left_inv := FunLike.congr_fun h_left_inv
+ right_inv := FunLike.congr_fun h_right_inv
+
+/-- Noncomputably conjure a decomposition instance from a `DirectSum.IsInternal` proof. -/
+noncomputable def IsInternal.chooseDecomposition (h : IsInternal ℳ) :
+ DirectSum.Decomposition ℳ where
+ decompose' := (Equiv.ofBijective _ h).symm
+ left_inv := (Equiv.ofBijective _ h).right_inv
+ right_inv := (Equiv.ofBijective _ h).left_inv
+
variable [Decomposition ℳ]
protected theorem Decomposition.isInternal : DirectSum.IsInternal ℳ :=
@@ -230,6 +249,15 @@ variable [DecidableEq ι] [Semiring R] [AddCommMonoid M] [Module R M]
variable (ℳ : ι → Submodule R M)
+/-- A convenience method to construct a decomposition from an `LinearMap`, such that the proofs
+of left and right inverse can be constructed via `ext`. -/
+abbrev Decomposition.ofLinearMap (decompose : M →ₗ[R] ⨁ i, ℳ i)
+ (h_left_inv : DirectSum.coeLinearMap ℳ ∘ₗ decompose = .id)
+ (h_right_inv : decompose ∘ₗ DirectSum.coeLinearMap ℳ = .id) : Decomposition ℳ where
+ decompose' := decompose
+ left_inv := FunLike.congr_fun h_left_inv
+ right_inv := FunLike.congr_fun h_right_inv
+
variable [Decomposition ℳ]
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
Two linear maps from a module with a decomposition agree if they agree on every piece.
Also replaces some bad simps
lemmas with manual ones.
@@ -234,17 +234,38 @@ variable [Decomposition ℳ]
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
a module to a direct sum of components. -/
-@[simps! (config := { fullyApplied := false })]
def decomposeLinearEquiv : M ≃ₗ[R] ⨁ i, ℳ i :=
LinearEquiv.symm
{ (decomposeAddEquiv ℳ).symm with map_smul' := map_smul (DirectSum.coeLinearMap ℳ) }
#align direct_sum.decompose_linear_equiv DirectSum.decomposeLinearEquiv
+@[simp] theorem decomposeLinearEquiv_apply (m : M) :
+ decomposeLinearEquiv ℳ m = decompose ℳ m := rfl
+
+@[simp] theorem decomposeLinearEquiv_symm_apply (m : ⨁ i, ℳ i) :
+ (decomposeLinearEquiv ℳ).symm m = (decompose ℳ).symm m := rfl
+
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x :=
map_smul (decomposeLinearEquiv ℳ) r x
#align direct_sum.decompose_smul DirectSum.decompose_smul
+@[simp] theorem decomposeLinearEquiv_symm_comp_lof (i : ι) :
+ (decomposeLinearEquiv ℳ).symm ∘ₗ lof R ι (ℳ ·) i = (ℳ i).subtype :=
+ LinearMap.ext <| decompose_symm_of _
+
+/-- Two linear maps from a module with a decomposition agree if they agree on every piece.
+
+Note this cannot be `@[ext]` as `ℳ` cannot be inferred. -/
+theorem decompose_lhom_ext {N} [AddCommMonoid N] [Module R N] ⦃f g : M →ₗ[R] N⦄
+ (h : ∀ i, f ∘ₗ (ℳ i).subtype = g ∘ₗ (ℳ i).subtype) : f = g :=
+ LinearMap.ext <| (decomposeLinearEquiv ℳ).symm.surjective.forall.mpr <|
+ suffices f ∘ₗ (decomposeLinearEquiv ℳ).symm
+ = (g ∘ₗ (decomposeLinearEquiv ℳ).symm : (⨁ i, ℳ i) →ₗ[R] N) from
+ FunLike.congr_fun this
+ linearMap_ext _ fun i => by
+ simp_rw [LinearMap.comp_assoc, decomposeLinearEquiv_symm_comp_lof ℳ i, h]
+
end Module
end DirectSum
@@ -137,7 +137,7 @@ lemma decomposeAddEquiv_apply (a : M) :
@[simp]
lemma decomposeAddEquiv_symm_apply (a : ⨁ i, ℳ i) :
- (decomposeAddEquiv ℳ).symm a = (decompose ℳ).symm a := rfl
+ (decomposeAddEquiv ℳ).symm a = (decompose ℳ).symm a := rfl
@[simp]
theorem decompose_zero : decompose ℳ (0 : M) = 0 :=
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -31,7 +31,7 @@ bundled homs, but means we don't have to repeat statements for different types o
-/
-variable {ι R M σ : Type _}
+variable {ι R M σ : Type*}
open DirectSum BigOperators
@@ -184,7 +184,7 @@ end AddCommMonoid
/-- The `-` in the statements below doesn't resolve without this line.
-This seems to a be a problem of synthesized vs inferred typeclasses disagreeing. If we replace
+This seems to be a problem of synthesized vs inferred typeclasses disagreeing. If we replace
the statement of `decompose_neg` with `@Eq (⨁ i, ℳ i) (decompose ℳ (-x)) (-decompose ℳ x)`
instead of `decompose ℳ (-x) = -decompose ℳ x`, which forces the typeclasses needed by `⨁ i, ℳ i`
to be found by unification rather than synthesis, then everything works fine without this
@@ -2,15 +2,12 @@
Copyright (c) 2022 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser, Jujian Zhang
-
-! This file was ported from Lean 3 source module algebra.direct_sum.decomposition
-! leanprover-community/mathlib commit 4e861f25ba5ceef42ba0712d8ffeb32f38ad6441
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.DirectSum.Module
import Mathlib.Algebra.Module.Submodule.Basic
+#align_import algebra.direct_sum.decomposition from "leanprover-community/mathlib"@"4e861f25ba5ceef42ba0712d8ffeb32f38ad6441"
+
/-!
# Decompositions of additive monoids, groups, and modules into direct sums
Algebra.DirectSum.Decomposition
, a simps was commented because it was causing a recurrence loop. However, one of the lemma that it generates is needed in this file, so I put the simps back (and fixed the loop)GradedModule.isModule
was causing a lot of troubles. (It was in fact marked as a dangerous instance in Mathlib3). I removed it and declared it directly in the only result using it, see this Zulip thread@@ -129,12 +129,19 @@ theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j
/-- If `M` is graded by `ι` with degree `i` component `ℳ i`, then it is isomorphic as
an additive monoid to a direct sum of components. -/
--- Porting note : this causes a maximum recursion depth
--- @[simps (config := { fullyApplied := false })]
+-- Porting note: deleted [simps] and added the corresponding lemmas by hand
def decomposeAddEquiv : M ≃+ ⨁ i, ℳ i :=
AddEquiv.symm { (decompose ℳ).symm with map_add' := map_add (DirectSum.coeAddMonoidHom ℳ) }
#align direct_sum.decompose_add_equiv DirectSum.decomposeAddEquiv
+@[simp]
+lemma decomposeAddEquiv_apply (a : M) :
+ decomposeAddEquiv ℳ a = decompose ℳ a := rfl
+
+@[simp]
+lemma decomposeAddEquiv_symm_apply (a : ⨁ i, ℳ i) :
+ (decomposeAddEquiv ℳ).symm a = (decompose ℳ).symm a := rfl
+
@[simp]
theorem decompose_zero : decompose ℳ (0 : M) = 0 :=
map_zero (decomposeAddEquiv ℳ)
The unported dependencies are