algebra.monoid_algebra.to_direct_sum
⟷
Mathlib.Algebra.MonoidAlgebra.ToDirectSum
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -5,7 +5,7 @@ Authors: Eric Wieser
-/
import Algebra.DirectSum.Algebra
import Algebra.MonoidAlgebra.Basic
-import Data.Finsupp.ToDfinsupp
+import Data.Finsupp.ToDFinsupp
#align_import algebra.monoid_algebra.to_direct_sum from "leanprover-community/mathlib"@"1b0a28e1c93409dbf6d69526863cd9984ef652ce"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-/
-import Mathbin.Algebra.DirectSum.Algebra
-import Mathbin.Algebra.MonoidAlgebra.Basic
-import Mathbin.Data.Finsupp.ToDfinsupp
+import Algebra.DirectSum.Algebra
+import Algebra.MonoidAlgebra.Basic
+import Data.Finsupp.ToDfinsupp
#align_import algebra.monoid_algebra.to_direct_sum from "leanprover-community/mathlib"@"1b0a28e1c93409dbf6d69526863cd9984ef652ce"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.to_direct_sum
-! leanprover-community/mathlib commit 1b0a28e1c93409dbf6d69526863cd9984ef652ce
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.DirectSum.Algebra
import Mathbin.Algebra.MonoidAlgebra.Basic
import Mathbin.Data.Finsupp.ToDfinsupp
+#align_import algebra.monoid_algebra.to_direct_sum from "leanprover-community/mathlib"@"1b0a28e1c93409dbf6d69526863cd9984ef652ce"
+
/-!
# Conversion between `add_monoid_algebra` and homogenous `direct_sum`
mathlib commit https://github.com/leanprover-community/mathlib/commit/4e24c4bfcff371c71f7ba22050308aa17815626c
@@ -75,7 +75,7 @@ section Defs
#print AddMonoidAlgebra.toDirectSum /-
/-- Interpret a `add_monoid_algebra` as a homogenous `direct_sum`. -/
def AddMonoidAlgebra.toDirectSum [Semiring M] (f : AddMonoidAlgebra M ι) : ⨁ i : ι, M :=
- Finsupp.toDfinsupp f
+ Finsupp.toDFinsupp f
#align add_monoid_algebra.to_direct_sum AddMonoidAlgebra.toDirectSum
-/
@@ -87,7 +87,7 @@ variable [DecidableEq ι] [Semiring M]
@[simp]
theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
AddMonoidAlgebra.toDirectSum (Finsupp.single i m) = DirectSum.of _ i m :=
- Finsupp.toDfinsupp_single i m
+ Finsupp.toDFinsupp_single i m
#align add_monoid_algebra.to_direct_sum_single AddMonoidAlgebra.toDirectSum_single
-/
@@ -96,7 +96,7 @@ variable [∀ m : M, Decidable (m ≠ 0)]
#print DirectSum.toAddMonoidAlgebra /-
/-- Interpret a homogenous `direct_sum` as a `add_monoid_algebra`. -/
def DirectSum.toAddMonoidAlgebra (f : ⨁ i : ι, M) : AddMonoidAlgebra M ι :=
- Dfinsupp.toFinsupp f
+ DFinsupp.toFinsupp f
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
-/
@@ -104,7 +104,7 @@ def DirectSum.toAddMonoidAlgebra (f : ⨁ i : ι, M) : AddMonoidAlgebra M ι :=
@[simp]
theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
(DirectSum.of _ i m : ⨁ i : ι, M).toAddMonoidAlgebra = Finsupp.single i m :=
- Dfinsupp.toFinsupp_single i m
+ DFinsupp.toFinsupp_single i m
#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_of
-/
@@ -112,7 +112,7 @@ theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
@[simp]
theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra (f : AddMonoidAlgebra M ι) :
f.toDirectSum.toAddMonoidAlgebra = f :=
- Finsupp.toDfinsupp_toFinsupp f
+ Finsupp.toDFinsupp_toFinsupp f
#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra
-/
@@ -120,7 +120,7 @@ theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra (f : AddMonoidAlgebra M
@[simp]
theorem DirectSum.toAddMonoidAlgebra_toDirectSum (f : ⨁ i : ι, M) :
f.toAddMonoidAlgebra.toDirectSum = f :=
- Dfinsupp.toFinsupp_toDfinsupp f
+ DFinsupp.toFinsupp_toDFinsupp f
#align direct_sum.to_add_monoid_algebra_to_direct_sum DirectSum.toAddMonoidAlgebra_toDirectSum
-/
@@ -138,7 +138,7 @@ namespace AddMonoidAlgebra
#print AddMonoidAlgebra.toDirectSum_zero /-
@[simp]
theorem toDirectSum_zero [Semiring M] : (0 : AddMonoidAlgebra M ι).toDirectSum = 0 :=
- Finsupp.toDfinsupp_zero
+ Finsupp.toDFinsupp_zero
#align add_monoid_algebra.to_direct_sum_zero AddMonoidAlgebra.toDirectSum_zero
-/
@@ -146,7 +146,7 @@ theorem toDirectSum_zero [Semiring M] : (0 : AddMonoidAlgebra M ι).toDirectSum
@[simp]
theorem toDirectSum_add [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f + g).toDirectSum = f.toDirectSum + g.toDirectSum :=
- Finsupp.toDfinsupp_add _ _
+ Finsupp.toDFinsupp_add _ _
#align add_monoid_algebra.to_direct_sum_add AddMonoidAlgebra.toDirectSum_add
-/
@@ -178,7 +178,7 @@ variable [DecidableEq ι]
@[simp]
theorem toAddMonoidAlgebra_zero [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
toAddMonoidAlgebra 0 = (0 : AddMonoidAlgebra M ι) :=
- Dfinsupp.toFinsupp_zero
+ DFinsupp.toFinsupp_zero
#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zero
-/
@@ -186,7 +186,7 @@ theorem toAddMonoidAlgebra_zero [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
@[simp]
theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ i : ι, M) :
(f + g).toAddMonoidAlgebra = toAddMonoidAlgebra f + toAddMonoidAlgebra g :=
- Dfinsupp.toFinsupp_add _ _
+ DFinsupp.toFinsupp_add _ _
#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_add
-/
@@ -217,7 +217,7 @@ equiv. -/
@[simps (config := { fullyApplied := false })]
def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
AddMonoidAlgebra M ι ≃ ⨁ i : ι, M :=
- { finsuppEquivDfinsupp with
+ { finsuppEquivDFinsupp with
toFun := AddMonoidAlgebra.toDirectSum
invFun := DirectSum.toAddMonoidAlgebra }
#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSum
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -160,7 +160,7 @@ theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddM
show to_hom (f * g) = to_hom f * to_hom g
revert f g
rw [AddMonoidHom.map_mul_iff]
- ext (xi xv yi yv) : 4
+ ext xi xv yi yv : 4
dsimp only [AddMonoidHom.comp_apply, AddMonoidHom.compl₂_apply, AddMonoidHom.compr₂_apply,
AddMonoidHom.mul_apply, AddEquiv.coe_toAddMonoidHom, Finsupp.singleAddHom_apply]
simp only [AddMonoidAlgebra.single_mul_single, to_hom, AddMonoidHom.coe_mk,
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -83,36 +83,46 @@ section
variable [DecidableEq ι] [Semiring M]
+#print AddMonoidAlgebra.toDirectSum_single /-
@[simp]
theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
AddMonoidAlgebra.toDirectSum (Finsupp.single i m) = DirectSum.of _ i m :=
Finsupp.toDfinsupp_single i m
#align add_monoid_algebra.to_direct_sum_single AddMonoidAlgebra.toDirectSum_single
+-/
variable [∀ m : M, Decidable (m ≠ 0)]
+#print DirectSum.toAddMonoidAlgebra /-
/-- Interpret a homogenous `direct_sum` as a `add_monoid_algebra`. -/
def DirectSum.toAddMonoidAlgebra (f : ⨁ i : ι, M) : AddMonoidAlgebra M ι :=
Dfinsupp.toFinsupp f
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
+-/
+#print DirectSum.toAddMonoidAlgebra_of /-
@[simp]
theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
(DirectSum.of _ i m : ⨁ i : ι, M).toAddMonoidAlgebra = Finsupp.single i m :=
Dfinsupp.toFinsupp_single i m
#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_of
+-/
+#print AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra /-
@[simp]
theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra (f : AddMonoidAlgebra M ι) :
f.toDirectSum.toAddMonoidAlgebra = f :=
Finsupp.toDfinsupp_toFinsupp f
#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra
+-/
+#print DirectSum.toAddMonoidAlgebra_toDirectSum /-
@[simp]
theorem DirectSum.toAddMonoidAlgebra_toDirectSum (f : ⨁ i : ι, M) :
f.toAddMonoidAlgebra.toDirectSum = f :=
Dfinsupp.toFinsupp_toDfinsupp f
#align direct_sum.to_add_monoid_algebra_to_direct_sum DirectSum.toAddMonoidAlgebra_toDirectSum
+-/
end
@@ -125,17 +135,22 @@ section Lemmas
namespace AddMonoidAlgebra
+#print AddMonoidAlgebra.toDirectSum_zero /-
@[simp]
theorem toDirectSum_zero [Semiring M] : (0 : AddMonoidAlgebra M ι).toDirectSum = 0 :=
Finsupp.toDfinsupp_zero
#align add_monoid_algebra.to_direct_sum_zero AddMonoidAlgebra.toDirectSum_zero
+-/
+#print AddMonoidAlgebra.toDirectSum_add /-
@[simp]
theorem toDirectSum_add [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f + g).toDirectSum = f.toDirectSum + g.toDirectSum :=
Finsupp.toDfinsupp_add _ _
#align add_monoid_algebra.to_direct_sum_add AddMonoidAlgebra.toDirectSum_add
+-/
+#print AddMonoidAlgebra.toDirectSum_mul /-
@[simp]
theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f * g).toDirectSum = f.toDirectSum * g.toDirectSum :=
@@ -151,6 +166,7 @@ theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddM
simp only [AddMonoidAlgebra.single_mul_single, to_hom, AddMonoidHom.coe_mk,
AddMonoidAlgebra.toDirectSum_single, DirectSum.of_mul_of, Mul.gMul_mul]
#align add_monoid_algebra.to_direct_sum_mul AddMonoidAlgebra.toDirectSum_mul
+-/
end AddMonoidAlgebra
@@ -158,18 +174,23 @@ namespace DirectSum
variable [DecidableEq ι]
+#print DirectSum.toAddMonoidAlgebra_zero /-
@[simp]
theorem toAddMonoidAlgebra_zero [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
toAddMonoidAlgebra 0 = (0 : AddMonoidAlgebra M ι) :=
Dfinsupp.toFinsupp_zero
#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zero
+-/
+#print DirectSum.toAddMonoidAlgebra_add /-
@[simp]
theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ i : ι, M) :
(f + g).toAddMonoidAlgebra = toAddMonoidAlgebra f + toAddMonoidAlgebra g :=
Dfinsupp.toFinsupp_add _ _
#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_add
+-/
+#print DirectSum.toAddMonoidAlgebra_mul /-
@[simp]
theorem toAddMonoidAlgebra_mul [AddMonoid ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)]
(f g : ⨁ i : ι, M) : (f * g).toAddMonoidAlgebra = toAddMonoidAlgebra f * toAddMonoidAlgebra g :=
@@ -179,6 +200,7 @@ theorem toAddMonoidAlgebra_mul [AddMonoid ι] [Semiring M] [∀ m : M, Decidable
· apply Function.LeftInverse.injective
apply AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra
#align direct_sum.to_add_monoid_algebra_mul DirectSum.toAddMonoidAlgebra_mul
+-/
end DirectSum
@@ -189,6 +211,7 @@ end Lemmas
section Equivs
+#print addMonoidAlgebraEquivDirectSum /-
/-- `add_monoid_algebra.to_direct_sum` and `direct_sum.to_add_monoid_algebra` together form an
equiv. -/
@[simps (config := { fullyApplied := false })]
@@ -198,7 +221,9 @@ def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Dec
toFun := AddMonoidAlgebra.toDirectSum
invFun := DirectSum.toAddMonoidAlgebra }
#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSum
+-/
+#print addMonoidAlgebraAddEquivDirectSum /-
/-- The additive version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
@@ -210,7 +235,9 @@ def addMonoidAlgebraAddEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M,
invFun := DirectSum.toAddMonoidAlgebra
map_add' := AddMonoidAlgebra.toDirectSum_add }
#align add_monoid_algebra_add_equiv_direct_sum addMonoidAlgebraAddEquivDirectSum
+-/
+#print addMonoidAlgebraRingEquivDirectSum /-
/-- The ring version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
@@ -224,7 +251,9 @@ def addMonoidAlgebraRingEquivDirectSum [DecidableEq ι] [AddMonoid ι] [Semiring
invFun := DirectSum.toAddMonoidAlgebra
map_mul' := AddMonoidAlgebra.toDirectSum_mul }
#align add_monoid_algebra_ring_equiv_direct_sum addMonoidAlgebraRingEquivDirectSum
+-/
+#print addMonoidAlgebraAlgEquivDirectSum /-
/-- The algebra version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
@@ -238,6 +267,7 @@ def addMonoidAlgebraAlgEquivDirectSum [DecidableEq ι] [AddMonoid ι] [CommSemir
invFun := DirectSum.toAddMonoidAlgebra
commutes' := fun r => AddMonoidAlgebra.toDirectSum_single _ _ }
#align add_monoid_algebra_alg_equiv_direct_sum addMonoidAlgebraAlgEquivDirectSum
+-/
end Equivs
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -65,7 +65,7 @@ still involve this definition.
variable {ι : Type _} {R : Type _} {M : Type _} {A : Type _}
-open DirectSum
+open scoped DirectSum
/-! ### Basic definitions and lemmas -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -83,9 +83,6 @@ section
variable [DecidableEq ι] [Semiring M]
-/- warning: add_monoid_algebra.to_direct_sum_single -> AddMonoidAlgebra.toDirectSum_single is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_single AddMonoidAlgebra.toDirectSum_singleₓ'. -/
@[simp]
theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
AddMonoidAlgebra.toDirectSum (Finsupp.single i m) = DirectSum.of _ i m :=
@@ -94,44 +91,23 @@ theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
variable [∀ m : M, Decidable (m ≠ 0)]
-/- warning: direct_sum.to_add_monoid_algebra -> DirectSum.toAddMonoidAlgebra is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) -> (AddMonoidAlgebra.{u2, u1} M ι _inst_2)
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) -> (AddMonoidAlgebra.{u2, u1} M ι _inst_2)
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebraₓ'. -/
/-- Interpret a homogenous `direct_sum` as a `add_monoid_algebra`. -/
def DirectSum.toAddMonoidAlgebra (f : ⨁ i : ι, M) : AddMonoidAlgebra M ι :=
Dfinsupp.toFinsupp f
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
-/- warning: direct_sum.to_add_monoid_algebra_of -> DirectSum.toAddMonoidAlgebra_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_ofₓ'. -/
@[simp]
theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
(DirectSum.of _ i m : ⨁ i : ι, M).toAddMonoidAlgebra = Finsupp.single i m :=
Dfinsupp.toFinsupp_single i m
#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_of
-/- warning: add_monoid_algebra.to_direct_sum_to_add_monoid_algebra -> AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_2), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 f)) f
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_2), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 f)) f
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebraₓ'. -/
@[simp]
theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra (f : AddMonoidAlgebra M ι) :
f.toDirectSum.toAddMonoidAlgebra = f :=
Finsupp.toDfinsupp_toFinsupp f
#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra
-/- warning: direct_sum.to_add_monoid_algebra_to_direct_sum -> DirectSum.toAddMonoidAlgebra_toDirectSum is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) f
-but is expected to have type
- forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Semiring.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)))))] (f : DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_2)))), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_2 (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) f
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_to_direct_sum DirectSum.toAddMonoidAlgebra_toDirectSumₓ'. -/
@[simp]
theorem DirectSum.toAddMonoidAlgebra_toDirectSum (f : ⨁ i : ι, M) :
f.toAddMonoidAlgebra.toDirectSum = f :=
@@ -149,35 +125,17 @@ section Lemmas
namespace AddMonoidAlgebra
-/- warning: add_monoid_algebra.to_direct_sum_zero -> AddMonoidAlgebra.toDirectSum_zero is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M], Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) 0 (OfNat.mk.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) 0 (Zero.zero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_1)))))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1))))))))))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M], Eq.{max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) 0 (Zero.toOfNat0.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_1)))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1))))))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_zero AddMonoidAlgebra.toDirectSum_zeroₓ'. -/
@[simp]
theorem toDirectSum_zero [Semiring M] : (0 : AddMonoidAlgebra M ι).toDirectSum = 0 :=
Finsupp.toDfinsupp_zero
#align add_monoid_algebra.to_direct_sum_zero AddMonoidAlgebra.toDirectSum_zero
-/- warning: add_monoid_algebra.to_direct_sum_add -> AddMonoidAlgebra.toDirectSum_add is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_1) (g : AddMonoidAlgebra.{u2, u1} M ι _inst_1), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddZeroClass.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_1))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))))))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 f) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 g))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_1) (g : AddMonoidAlgebra.{u2, u1} M ι _inst_1), Eq.{max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_1))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))))))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 f) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 g))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_add AddMonoidAlgebra.toDirectSum_addₓ'. -/
@[simp]
theorem toDirectSum_add [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f + g).toDirectSum = f.toDirectSum + g.toDirectSum :=
Finsupp.toDfinsupp_add _ _
#align add_monoid_algebra.to_direct_sum_add AddMonoidAlgebra.toDirectSum_add
-/- warning: add_monoid_algebra.to_direct_sum_mul -> AddMonoidAlgebra.toDirectSum_mul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_3) (g : AddMonoidAlgebra.{u2, u1} M ι _inst_3), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_3 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)))) f g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_3 f) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_3 g))
-but is expected to have type
- forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddMonoid.{u2} ι] [_inst_3 : Semiring.{u1} M] (f : AddMonoidAlgebra.{u1, u2} M ι _inst_3) (g : AddMonoidAlgebra.{u1, u2} M ι _inst_3), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_3 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u1, u2} M ι _inst_3 (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)))) f g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (instHMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (_i : ι) => M) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u2, u1} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} M (Semiring.toNonAssocSemiring.{u1} M _inst_3)))))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_3 f) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_3 g))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_mul AddMonoidAlgebra.toDirectSum_mulₓ'. -/
@[simp]
theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f * g).toDirectSum = f.toDirectSum * g.toDirectSum :=
@@ -200,36 +158,18 @@ namespace DirectSum
variable [DecidableEq ι]
-/- warning: direct_sum.to_add_monoid_algebra_zero -> DirectSum.toAddMonoidAlgebra_zero is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))))))) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) 0 (OfNat.mk.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) 0 (Zero.zero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddZeroClass.toHasZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_2)))))))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (OfNat.ofNat.{max u2 u1} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2))))))))) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) 0 (Zero.toOfNat0.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_2)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zeroₓ'. -/
@[simp]
theorem toAddMonoidAlgebra_zero [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
toAddMonoidAlgebra 0 = (0 : AddMonoidAlgebra M ι) :=
Dfinsupp.toFinsupp_zero
#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zero
-/- warning: direct_sum.to_add_monoid_algebra_add -> DirectSum.toAddMonoidAlgebra_add is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (g : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddZeroClass.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_2))))) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) g))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (g : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_2))))) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) g))
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_addₓ'. -/
@[simp]
theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ i : ι, M) :
(f + g).toAddMonoidAlgebra = toAddMonoidAlgebra f + toAddMonoidAlgebra g :=
Dfinsupp.toFinsupp_add _ _
#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_add
-/- warning: direct_sum.to_add_monoid_algebra_mul -> DirectSum.toAddMonoidAlgebra_mul is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (g : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))) f g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)))) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) f) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) g))
-but is expected to have type
- forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddMonoid.{u2} ι] [_inst_3 : Semiring.{u1} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_3)))))] (f : DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (g : DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (instHMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (_i : ι) => M) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u2, u1} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} M (Semiring.toNonAssocSemiring.{u1} M _inst_3)))))) f g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u1, u2} M ι _inst_3 (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)))) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) f) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) g))
-Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_mul DirectSum.toAddMonoidAlgebra_mulₓ'. -/
@[simp]
theorem toAddMonoidAlgebra_mul [AddMonoid ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)]
(f g : ⨁ i : ι, M) : (f * g).toAddMonoidAlgebra = toAddMonoidAlgebra f * toAddMonoidAlgebra g :=
@@ -249,12 +189,6 @@ end Lemmas
section Equivs
-/- warning: add_monoid_algebra_equiv_direct_sum -> addMonoidAlgebraEquivDirectSum is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSumₓ'. -/
/-- `add_monoid_algebra.to_direct_sum` and `direct_sum.to_add_monoid_algebra` together form an
equiv. -/
@[simps (config := { fullyApplied := false })]
@@ -265,12 +199,6 @@ def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Dec
invFun := DirectSum.toAddMonoidAlgebra }
#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSum
-/- warning: add_monoid_algebra_add_equiv_direct_sum -> addMonoidAlgebraAddEquivDirectSum is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], AddEquiv.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddZeroClass.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_2)))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))))))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], AddEquiv.{max u1 u2, max u2 u1} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_2)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_add_equiv_direct_sum addMonoidAlgebraAddEquivDirectSumₓ'. -/
/-- The additive version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
@@ -283,12 +211,6 @@ def addMonoidAlgebraAddEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M,
map_add' := AddMonoidAlgebra.toDirectSum_add }
#align add_monoid_algebra_add_equiv_direct_sum addMonoidAlgebraAddEquivDirectSum
-/- warning: add_monoid_algebra_ring_equiv_direct_sum -> addMonoidAlgebraRingEquivDirectSum is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))))], RingEquiv.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))) (Distrib.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))))) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))))) (Distrib.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))
-but is expected to have type
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_3)))))], RingEquiv.{max u1 u2, max u2 u1} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (_i : ι) => M) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u2, u1} M ι _inst_3 (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))))) (Distrib.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_ring_equiv_direct_sum addMonoidAlgebraRingEquivDirectSumₓ'. -/
/-- The ring version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
@@ -303,12 +225,6 @@ def addMonoidAlgebraRingEquivDirectSum [DecidableEq ι] [AddMonoid ι] [Semiring
map_mul' := AddMonoidAlgebra.toDirectSum_mul }
#align add_monoid_algebra_ring_equiv_direct_sum addMonoidAlgebraRingEquivDirectSum
-/- warning: add_monoid_algebra_alg_equiv_direct_sum -> addMonoidAlgebraAlgEquivDirectSum is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {R : Type.{u2}} {A : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : CommSemiring.{u2} R] [_inst_4 : Semiring.{u3} A] [_inst_5 : Algebra.{u2, u3} R A _inst_3 _inst_4] [_inst_6 : forall (m : A), Decidable (Ne.{succ u3} A m (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))))))))], AlgEquiv.{u2, max u1 u3, max u1 u3} R (AddMonoidAlgebra.{u3, u1} A ι _inst_4) (DirectSum.{u1, u3} ι (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4)))) _inst_3 (AddMonoidAlgebra.semiring.{u3, u1} A ι _inst_4 _inst_2) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 _inst_4)) (AddMonoidAlgebra.algebra.{u3, u1, u2} A ι R _inst_3 _inst_4 _inst_5 _inst_2) (DirectSum.algebra.{u1, u2, u3} ι R (fun (i : ι) => A) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (fun (i : ι) => Algebra.toModule.{u2, u3} R A _inst_3 _inst_4 _inst_5) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 _inst_4) (Algebra.directSumGAlgebra.{u1, u2, u3} ι R A (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 _inst_5))
-but is expected to have type
- forall {ι : Type.{u1}} {R : Type.{u2}} {A : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : CommSemiring.{u2} R] [_inst_4 : Semiring.{u3} A] [_inst_5 : Algebra.{u2, u3} R A _inst_3 _inst_4] [_inst_6 : forall (m : A), Decidable (Ne.{succ u3} A m (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)))))], AlgEquiv.{u2, max u1 u3, max u3 u1} R (AddMonoidAlgebra.{u3, u1} A ι _inst_4) (DirectSum.{u1, u3} ι (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} ((fun (_i : ι) => A) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) (Semiring.toNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) _inst_4)))) _inst_3 (AddMonoidAlgebra.semiring.{u3, u1} A ι _inst_4 _inst_2) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} ((fun (_i : ι) => A) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) (Semiring.toNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) _inst_4))) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι A _inst_2 _inst_4)) (AddMonoidAlgebra.algebra.{u3, u1, u2} A ι R _inst_3 _inst_4 _inst_5 _inst_2) (DirectSum.instAlgebraDirectSumSemiring.{u1, u2, u3} ι R (fun (i : ι) => A) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} ((fun (_i : ι) => A) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) (Semiring.toNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) _inst_4))) (fun (i : ι) => Algebra.toModule.{u2, u3} R A _inst_3 _inst_4 _inst_5) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι A _inst_2 _inst_4) (Algebra.directSumGAlgebra.{u1, u2, u3} ι R A (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 _inst_5))
-Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_alg_equiv_direct_sum addMonoidAlgebraAlgEquivDirectSumₓ'. -/
/-- The algebra version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -84,10 +84,7 @@ section
variable [DecidableEq ι] [Semiring M]
/- warning: add_monoid_algebra.to_direct_sum_single -> AddMonoidAlgebra.toDirectSum_single is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] (i : ι) (m : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 (Finsupp.single.{u1, u2} ι M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) i m)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))) i) m)
-but is expected to have type
- forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Semiring.{u1} M] (i : ι) (m : M), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_2 (Finsupp.single.{u2, u1} ι M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)) i m)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))) i) m)
+<too large>
Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_single AddMonoidAlgebra.toDirectSum_singleₓ'. -/
@[simp]
theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
@@ -109,10 +106,7 @@ def DirectSum.toAddMonoidAlgebra (f : ⨁ i : ι, M) : AddMonoidAlgebra M ι :=
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
/- warning: direct_sum.to_add_monoid_algebra_of -> DirectSum.toAddMonoidAlgebra_of is a dubious translation:
-lean 3 declaration is
- forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (i : ι) (m : M), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))) i) m)) (Finsupp.single.{u1, u2} ι M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) i m)
-but is expected to have type
- forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Semiring.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)))))] (i : ι) (m : M), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_2))) i) m)) (Finsupp.single.{u2, u1} ι M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)) i m)
+<too large>
Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_ofₓ'. -/
@[simp]
theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/1b0a28e1c93409dbf6d69526863cd9984ef652ce
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
! This file was ported from Lean 3 source module algebra.monoid_algebra.to_direct_sum
-! leanprover-community/mathlib commit c0a51cf2de54089d69301befc4c73bbc2f5c7342
+! leanprover-community/mathlib commit 1b0a28e1c93409dbf6d69526863cd9984ef652ce
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.Data.Finsupp.ToDfinsupp
/-!
# Conversion between `add_monoid_algebra` and homogenous `direct_sum`
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This module provides conversions between `add_monoid_algebra` and `direct_sum`.
The latter is essentially a dependent version of the former.
mathlib commit https://github.com/leanprover-community/mathlib/commit/f51de8769c34652d82d1c8e5f8f18f8374782bed
@@ -69,15 +69,23 @@ open DirectSum
section Defs
+#print AddMonoidAlgebra.toDirectSum /-
/-- Interpret a `add_monoid_algebra` as a homogenous `direct_sum`. -/
def AddMonoidAlgebra.toDirectSum [Semiring M] (f : AddMonoidAlgebra M ι) : ⨁ i : ι, M :=
Finsupp.toDfinsupp f
#align add_monoid_algebra.to_direct_sum AddMonoidAlgebra.toDirectSum
+-/
section
variable [DecidableEq ι] [Semiring M]
+/- warning: add_monoid_algebra.to_direct_sum_single -> AddMonoidAlgebra.toDirectSum_single is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] (i : ι) (m : M), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 (Finsupp.single.{u1, u2} ι M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) i m)) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))) i) m)
+but is expected to have type
+ forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Semiring.{u1} M] (i : ι) (m : M), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_2 (Finsupp.single.{u2, u1} ι M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)) i m)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))) i) m)
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_single AddMonoidAlgebra.toDirectSum_singleₓ'. -/
@[simp]
theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
AddMonoidAlgebra.toDirectSum (Finsupp.single i m) = DirectSum.of _ i m :=
@@ -86,23 +94,47 @@ theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
variable [∀ m : M, Decidable (m ≠ 0)]
+/- warning: direct_sum.to_add_monoid_algebra -> DirectSum.toAddMonoidAlgebra is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) -> (AddMonoidAlgebra.{u2, u1} M ι _inst_2)
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) -> (AddMonoidAlgebra.{u2, u1} M ι _inst_2)
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebraₓ'. -/
/-- Interpret a homogenous `direct_sum` as a `add_monoid_algebra`. -/
def DirectSum.toAddMonoidAlgebra (f : ⨁ i : ι, M) : AddMonoidAlgebra M ι :=
Dfinsupp.toFinsupp f
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
+/- warning: direct_sum.to_add_monoid_algebra_of -> DirectSum.toAddMonoidAlgebra_of is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (i : ι) (m : M), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))) => M -> (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} M (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))) i) m)) (Finsupp.single.{u1, u2} ι M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) i m)
+but is expected to have type
+ forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Semiring.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)))))] (i : ι) (m : M), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) _x) (AddHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddZeroClass.toAdd.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u1, max u2 u1} (AddMonoidHom.{u1, max u1 u2} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))) M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))))) (AddMonoidHom.addMonoidHomClass.{u1, max u2 u1} M (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))) (AddMonoid.toAddZeroClass.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2))))))))) (DirectSum.of.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_2))) i) m)) (Finsupp.single.{u2, u1} ι M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)) i m)
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_ofₓ'. -/
@[simp]
theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
(DirectSum.of _ i m : ⨁ i : ι, M).toAddMonoidAlgebra = Finsupp.single i m :=
Dfinsupp.toFinsupp_single i m
#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_of
+/- warning: add_monoid_algebra.to_direct_sum_to_add_monoid_algebra -> AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_2), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 f)) f
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_2), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 f)) f
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebraₓ'. -/
@[simp]
theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra (f : AddMonoidAlgebra M ι) :
f.toDirectSum.toAddMonoidAlgebra = f :=
Finsupp.toDfinsupp_toFinsupp f
#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra
+/- warning: direct_sum.to_add_monoid_algebra_to_direct_sum -> DirectSum.toAddMonoidAlgebra_toDirectSum is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_2 (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) f
+but is expected to have type
+ forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : Semiring.{u1} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_2)))))] (f : DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_2)))), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_2 (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f)) f
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_to_direct_sum DirectSum.toAddMonoidAlgebra_toDirectSumₓ'. -/
@[simp]
theorem DirectSum.toAddMonoidAlgebra_toDirectSum (f : ⨁ i : ι, M) :
f.toAddMonoidAlgebra.toDirectSum = f :=
@@ -120,17 +152,35 @@ section Lemmas
namespace AddMonoidAlgebra
+/- warning: add_monoid_algebra.to_direct_sum_zero -> AddMonoidAlgebra.toDirectSum_zero is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M], Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) 0 (OfNat.mk.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) 0 (Zero.zero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddZeroClass.toHasZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_1)))))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1))))))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M], Eq.{max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) 0 (Zero.toOfNat0.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_1)))))) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1))))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_zero AddMonoidAlgebra.toDirectSum_zeroₓ'. -/
@[simp]
theorem toDirectSum_zero [Semiring M] : (0 : AddMonoidAlgebra M ι).toDirectSum = 0 :=
Finsupp.toDfinsupp_zero
#align add_monoid_algebra.to_direct_sum_zero AddMonoidAlgebra.toDirectSum_zero
+/- warning: add_monoid_algebra.to_direct_sum_add -> AddMonoidAlgebra.toDirectSum_add is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_1) (g : AddMonoidAlgebra.{u2, u1} M ι _inst_1), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddZeroClass.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_1))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_1)))))))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 f) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 g))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u2} M] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_1) (g : AddMonoidAlgebra.{u2, u1} M ι _inst_1), Eq.{max (succ u1) (succ u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_1) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_1))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_1)))))))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 f) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_1 g))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_add AddMonoidAlgebra.toDirectSum_addₓ'. -/
@[simp]
theorem toDirectSum_add [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f + g).toDirectSum = f.toDirectSum + g.toDirectSum :=
Finsupp.toDfinsupp_add _ _
#align add_monoid_algebra.to_direct_sum_add AddMonoidAlgebra.toDirectSum_add
+/- warning: add_monoid_algebra.to_direct_sum_mul -> AddMonoidAlgebra.toDirectSum_mul is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] (f : AddMonoidAlgebra.{u2, u1} M ι _inst_3) (g : AddMonoidAlgebra.{u2, u1} M ι _inst_3), Eq.{succ (max u1 u2)} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_3 (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)))) f g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_3 f) (AddMonoidAlgebra.toDirectSum.{u1, u2} ι M _inst_3 g))
+but is expected to have type
+ forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddMonoid.{u2} ι] [_inst_3 : Semiring.{u1} M] (f : AddMonoidAlgebra.{u1, u2} M ι _inst_3) (g : AddMonoidAlgebra.{u1, u2} M ι _inst_3), Eq.{max (succ u2) (succ u1)} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_3 (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u1, u2} M ι _inst_3 (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)))) f g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (instHMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (_i : ι) => M) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u2, u1} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} M (Semiring.toNonAssocSemiring.{u1} M _inst_3)))))) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_3 f) (AddMonoidAlgebra.toDirectSum.{u2, u1} ι M _inst_3 g))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra.to_direct_sum_mul AddMonoidAlgebra.toDirectSum_mulₓ'. -/
@[simp]
theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f * g).toDirectSum = f.toDirectSum * g.toDirectSum :=
@@ -153,18 +203,36 @@ namespace DirectSum
variable [DecidableEq ι]
+/- warning: direct_sum.to_add_monoid_algebra_zero -> DirectSum.toAddMonoidAlgebra_zero is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (OfNat.ofNat.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) 0 (OfNat.mk.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) 0 (Zero.zero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddZeroClass.toHasZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2))))))))))) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) 0 (OfNat.mk.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) 0 (Zero.zero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddZeroClass.toHasZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_2)))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (OfNat.ofNat.{max u2 u1} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) 0 (Zero.toOfNat0.{max u1 u2} (DirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toZero.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2))))))))) (OfNat.ofNat.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) 0 (Zero.toOfNat0.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toZero.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_2)))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zeroₓ'. -/
@[simp]
theorem toAddMonoidAlgebra_zero [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
toAddMonoidAlgebra 0 = (0 : AddMonoidAlgebra M ι) :=
Dfinsupp.toFinsupp_zero
#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zero
+/- warning: direct_sum.to_add_monoid_algebra_add -> DirectSum.toAddMonoidAlgebra_add is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (g : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddZeroClass.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_2))))) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) g))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (g : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instHAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_2)))))))) f g)) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (instHAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_2))))) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) f) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 (fun (m : M) => _inst_3 m) g))
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_addₓ'. -/
@[simp]
theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ i : ι, M) :
(f + g).toAddMonoidAlgebra = toAddMonoidAlgebra f + toAddMonoidAlgebra g :=
Dfinsupp.toFinsupp_add _ _
#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_add
+/- warning: direct_sum.to_add_monoid_algebra_mul -> DirectSum.toAddMonoidAlgebra_mul is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))))] (f : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (g : DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))), Eq.{max (succ u1) (succ u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (instHMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))) f g)) (HMul.hMul.{max u1 u2, max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (instHMul.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)))) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) f) (DirectSum.toAddMonoidAlgebra.{u1, u2} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) g))
+but is expected to have type
+ forall {ι : Type.{u2}} {M : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} ι] [_inst_2 : AddMonoid.{u2} ι] [_inst_3 : Semiring.{u1} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u1} M m (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (MonoidWithZero.toZero.{u1} M (Semiring.toMonoidWithZero.{u1} M _inst_3)))))] (f : DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (g : DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))), Eq.{max (succ u2) (succ u1)} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (instHMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (DirectSum.{u2, u1} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u2, u1} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (_i : ι) => M) (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u1} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u2, u1} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} M (Semiring.toNonAssocSemiring.{u1} M _inst_3)))))) f g)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (instHMul.{max u2 u1} (AddMonoidAlgebra.{u1, u2} M ι _inst_3) (AddMonoidAlgebra.hasMul.{u1, u2} M ι _inst_3 (AddZeroClass.toAdd.{u2} ι (AddMonoid.toAddZeroClass.{u2} ι _inst_2)))) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) f) (DirectSum.toAddMonoidAlgebra.{u2, u1} ι M (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (m : M) => _inst_4 m) g))
+Case conversion may be inaccurate. Consider using '#align direct_sum.to_add_monoid_algebra_mul DirectSum.toAddMonoidAlgebra_mulₓ'. -/
@[simp]
theorem toAddMonoidAlgebra_mul [AddMonoid ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)]
(f g : ⨁ i : ι, M) : (f * g).toAddMonoidAlgebra = toAddMonoidAlgebra f * toAddMonoidAlgebra g :=
@@ -184,6 +252,12 @@ end Lemmas
section Equivs
+/- warning: add_monoid_algebra_equiv_direct_sum -> addMonoidAlgebraEquivDirectSum is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], Equiv.{max (succ u1) (succ u2), succ (max u1 u2)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], Equiv.{max (succ u1) (succ u2), max (succ u2) (succ u1)} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSumₓ'. -/
/-- `add_monoid_algebra.to_direct_sum` and `direct_sum.to_add_monoid_algebra` together form an
equiv. -/
@[simps (config := { fullyApplied := false })]
@@ -194,6 +268,12 @@ def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Dec
invFun := DirectSum.toAddMonoidAlgebra }
#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSum
+/- warning: add_monoid_algebra_add_equiv_direct_sum -> addMonoidAlgebraAddEquivDirectSum is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2))))))))], AddEquiv.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddZeroClass.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u1, u2} M ι _inst_2)))) (AddZeroClass.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_2)))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : Semiring.{u2} M] [_inst_3 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_2)))))], AddEquiv.{max u1 u2, max u2 u1} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddZeroClass.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoid.toAddZeroClass.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddCommMonoid.toAddMonoid.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_2) (AddMonoidAlgebra.addCommMonoid.{u2, u1} M ι _inst_2)))) (AddZeroClass.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_2)))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_add_equiv_direct_sum addMonoidAlgebraAddEquivDirectSumₓ'. -/
/-- The additive version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
@@ -206,6 +286,12 @@ def addMonoidAlgebraAddEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M,
map_add' := AddMonoidAlgebra.toDirectSum_add }
#align add_monoid_algebra_add_equiv_direct_sum addMonoidAlgebraAddEquivDirectSum
+/- warning: add_monoid_algebra_ring_equiv_direct_sum -> addMonoidAlgebraRingEquivDirectSum is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (MulZeroClass.toHasZero.{u2} M (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))))], RingEquiv.{max u1 u2, max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))) (Distrib.toHasAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u2, u1} M ι _inst_3 (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))))) (Distrib.toHasMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))))) (Distrib.toHasAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3)))) (DirectSum.nonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} M (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))
+but is expected to have type
+ forall {ι : Type.{u1}} {M : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} M] [_inst_4 : forall (m : M), Decidable (Ne.{succ u2} M m (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (MonoidWithZero.toZero.{u2} M (Semiring.toMonoidWithZero.{u2} M _inst_3)))))], RingEquiv.{max u1 u2, max u2 u1} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (AddMonoidAlgebra.hasMul.{u2, u1} M ι _inst_3 (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (DirectSum.{u1, u2} ι (fun (_i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (_i : ι) => M) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))) (Distrib.toAdd.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (AddMonoidAlgebra.{u2, u1} M ι _inst_3) (AddMonoidAlgebra.nonUnitalNonAssocSemiring.{u2, u1} M ι _inst_3 (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2))))) (Distrib.toAdd.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (NonUnitalNonAssocSemiring.toDistrib.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => M) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3)))) (DirectSum.instNonUnitalNonAssocSemiringDirectSum.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => M) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_2)) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} ((fun (_i : ι) => M) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) (Semiring.toNonAssocSemiring.{u2} ((fun (_i : ι) => M) i) _inst_3))) (NonUnitalNonAssocSemiring.directSumGNonUnitalNonAssocSemiring.{u1, u2} ι M _inst_2 (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} M (Semiring.toNonAssocSemiring.{u2} M _inst_3))))))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_ring_equiv_direct_sum addMonoidAlgebraRingEquivDirectSumₓ'. -/
/-- The ring version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
@@ -220,6 +306,12 @@ def addMonoidAlgebraRingEquivDirectSum [DecidableEq ι] [AddMonoid ι] [Semiring
map_mul' := AddMonoidAlgebra.toDirectSum_mul }
#align add_monoid_algebra_ring_equiv_direct_sum addMonoidAlgebraRingEquivDirectSum
+/- warning: add_monoid_algebra_alg_equiv_direct_sum -> addMonoidAlgebraAlgEquivDirectSum is a dubious translation:
+lean 3 declaration is
+ forall {ι : Type.{u1}} {R : Type.{u2}} {A : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : CommSemiring.{u2} R] [_inst_4 : Semiring.{u3} A] [_inst_5 : Algebra.{u2, u3} R A _inst_3 _inst_4] [_inst_6 : forall (m : A), Decidable (Ne.{succ u3} A m (OfNat.ofNat.{u3} A 0 (OfNat.mk.{u3} A 0 (Zero.zero.{u3} A (MulZeroClass.toHasZero.{u3} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))))))))], AlgEquiv.{u2, max u1 u3, max u1 u3} R (AddMonoidAlgebra.{u3, u1} A ι _inst_4) (DirectSum.{u1, u3} ι (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4)))) _inst_3 (AddMonoidAlgebra.semiring.{u3, u1} A ι _inst_4 _inst_2) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 _inst_4)) (AddMonoidAlgebra.algebra.{u3, u1, u2} A ι R _inst_3 _inst_4 _inst_5 _inst_2) (DirectSum.algebra.{u1, u2, u3} ι R (fun (i : ι) => A) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} A (Semiring.toNonAssocSemiring.{u3} A _inst_4))) (fun (i : ι) => Algebra.toModule.{u2, u3} R A _inst_3 _inst_4 _inst_5) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 _inst_4) (Algebra.directSumGAlgebra.{u1, u2, u3} ι R A (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 _inst_5))
+but is expected to have type
+ forall {ι : Type.{u1}} {R : Type.{u2}} {A : Type.{u3}} [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : CommSemiring.{u2} R] [_inst_4 : Semiring.{u3} A] [_inst_5 : Algebra.{u2, u3} R A _inst_3 _inst_4] [_inst_6 : forall (m : A), Decidable (Ne.{succ u3} A m (OfNat.ofNat.{u3} A 0 (Zero.toOfNat0.{u3} A (MonoidWithZero.toZero.{u3} A (Semiring.toMonoidWithZero.{u3} A _inst_4)))))], AlgEquiv.{u2, max u1 u3, max u3 u1} R (AddMonoidAlgebra.{u3, u1} A ι _inst_4) (DirectSum.{u1, u3} ι (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} ((fun (_i : ι) => A) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) (Semiring.toNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) _inst_4)))) _inst_3 (AddMonoidAlgebra.semiring.{u3, u1} A ι _inst_4 _inst_2) (DirectSum.semiring.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_1 a b) (fun (i : ι) => A) (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} ((fun (_i : ι) => A) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) (Semiring.toNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) _inst_4))) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι A _inst_2 _inst_4)) (AddMonoidAlgebra.algebra.{u3, u1, u2} A ι R _inst_3 _inst_4 _inst_5 _inst_2) (DirectSum.instAlgebraDirectSumSemiring.{u1, u2, u3} ι R (fun (i : ι) => A) (fun (a : ι) (b : ι) => _inst_1 a b) _inst_3 (fun (i : ι) => NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} ((fun (_i : ι) => A) i) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) (Semiring.toNonAssocSemiring.{u3} ((fun (_i : ι) => A) i) _inst_4))) (fun (i : ι) => Algebra.toModule.{u2, u3} R A _inst_3 _inst_4 _inst_5) _inst_2 (Semiring.directSumGSemiring.{u1, u3} ι A _inst_2 _inst_4) (Algebra.directSumGAlgebra.{u1, u2, u3} ι R A (fun (a : ι) (b : ι) => _inst_1 a b) _inst_2 _inst_3 _inst_4 _inst_5))
+Case conversion may be inaccurate. Consider using '#align add_monoid_algebra_alg_equiv_direct_sum addMonoidAlgebraAlgEquivDirectSumₓ'. -/
/-- The algebra version of `add_monoid_algebra.to_add_monoid_algebra`. Note that this is
`noncomputable` because `add_monoid_algebra.has_add` is noncomputable. -/
@[simps (config := { fullyApplied := false })]
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -139,7 +139,7 @@ theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddM
let _ : NonUnitalNonAssocSemiring (ι →₀ M) := AddMonoidAlgebra.nonUnitalNonAssocSemiring
revert f g
rw [AddMonoidHom.map_mul_iff]
- -- porting note: does not find `addHom_ext'`, was `ext (xi xv yi yv) : 4`
+ -- Porting note: does not find `addHom_ext'`, was `ext (xi xv yi yv) : 4`
refine Finsupp.addHom_ext' fun xi => AddMonoidHom.ext fun xv => ?_
refine Finsupp.addHom_ext' fun yi => AddMonoidHom.ext fun yv => ?_
dsimp only [AddMonoidHom.comp_apply, AddMonoidHom.compl₂_apply, AddMonoidHom.compr₂_apply,
Use .asFn
and .lemmasOnly
as simps
configuration options.
For reference, these are defined here:
@@ -198,7 +198,7 @@ section Equivs
/-- `AddMonoidAlgebra.toDirectSum` and `DirectSum.toAddMonoidAlgebra` together form an
equiv. -/
-@[simps (config := { fullyApplied := false })]
+@[simps (config := .asFn)]
def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
AddMonoidAlgebra M ι ≃ ⨁ _ : ι, M :=
{ finsuppEquivDFinsupp with
@@ -207,7 +207,7 @@ def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Dec
#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSum
/-- The additive version of `AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum`. -/
-@[simps (config := { fullyApplied := false })]
+@[simps (config := .asFn)]
def addMonoidAlgebraAddEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
AddMonoidAlgebra M ι ≃+ ⨁ _ : ι, M :=
{ addMonoidAlgebraEquivDirectSum with
@@ -217,7 +217,7 @@ def addMonoidAlgebraAddEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M,
#align add_monoid_algebra_add_equiv_direct_sum addMonoidAlgebraAddEquivDirectSum
/-- The ring version of `AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum`. -/
-@[simps (config := { fullyApplied := false })]
+@[simps (config := .asFn)]
def addMonoidAlgebraRingEquivDirectSum [DecidableEq ι] [AddMonoid ι] [Semiring M]
[∀ m : M, Decidable (m ≠ 0)] : AddMonoidAlgebra M ι ≃+* ⨁ _ : ι, M :=
{ (addMonoidAlgebraAddEquivDirectSum : AddMonoidAlgebra M ι ≃+ ⨁ _ : ι, M) with
@@ -227,7 +227,7 @@ def addMonoidAlgebraRingEquivDirectSum [DecidableEq ι] [AddMonoid ι] [Semiring
#align add_monoid_algebra_ring_equiv_direct_sum addMonoidAlgebraRingEquivDirectSum
/-- The algebra version of `AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum`. -/
-@[simps (config := { fullyApplied := false })]
+@[simps (config := .asFn)]
def addMonoidAlgebraAlgEquivDirectSum [DecidableEq ι] [AddMonoid ι] [CommSemiring R] [Semiring A]
[Algebra R A] [∀ m : A, Decidable (m ≠ 0)] : AddMonoidAlgebra A ι ≃ₐ[R] ⨁ _ : ι, A :=
{ (addMonoidAlgebraRingEquivDirectSum : AddMonoidAlgebra A ι ≃+* ⨁ _ : ι, A) with
@@ -144,7 +144,13 @@ theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddM
refine Finsupp.addHom_ext' fun yi => AddMonoidHom.ext fun yv => ?_
dsimp only [AddMonoidHom.comp_apply, AddMonoidHom.compl₂_apply, AddMonoidHom.compr₂_apply,
AddMonoidHom.mul_apply, Finsupp.singleAddHom_apply]
+ -- This was not needed before leanprover/lean4#2644
+ erw [AddMonoidHom.compl₂_apply]
+ -- This was not needed before leanprover/lean4#2644
+ erw [AddMonoidHom.coe_mk]
simp only [AddMonoidHom.coe_mk, ZeroHom.coe_mk, toDirectSum_single]
+ -- This was not needed before leanprover/lean4#2644
+ dsimp
erw [AddMonoidAlgebra.single_mul_single, AddMonoidHom.coe_mk, ZeroHom.coe_mk,
AddMonoidAlgebra.toDirectSum_single]
simp only [AddMonoidHom.coe_comp, AddMonoidHom.coe_mul, AddMonoidHom.coe_mk, ZeroHom.coe_mk,
@@ -144,13 +144,7 @@ theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddM
refine Finsupp.addHom_ext' fun yi => AddMonoidHom.ext fun yv => ?_
dsimp only [AddMonoidHom.comp_apply, AddMonoidHom.compl₂_apply, AddMonoidHom.compr₂_apply,
AddMonoidHom.mul_apply, Finsupp.singleAddHom_apply]
- -- This was not needed before leanprover/lean4#2644
- erw [AddMonoidHom.compl₂_apply]
- -- This was not needed before leanprover/lean4#2644
- erw [AddMonoidHom.coe_mk]
simp only [AddMonoidHom.coe_mk, ZeroHom.coe_mk, toDirectSum_single]
- -- This was not needed before leanprover/lean4#2644
- dsimp
erw [AddMonoidAlgebra.single_mul_single, AddMonoidHom.coe_mk, ZeroHom.coe_mk,
AddMonoidAlgebra.toDirectSum_single]
simp only [AddMonoidHom.coe_comp, AddMonoidHom.coe_mul, AddMonoidHom.coe_mk, ZeroHom.coe_mk,
@@ -144,7 +144,13 @@ theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddM
refine Finsupp.addHom_ext' fun yi => AddMonoidHom.ext fun yv => ?_
dsimp only [AddMonoidHom.comp_apply, AddMonoidHom.compl₂_apply, AddMonoidHom.compr₂_apply,
AddMonoidHom.mul_apply, Finsupp.singleAddHom_apply]
+ -- This was not needed before leanprover/lean4#2644
+ erw [AddMonoidHom.compl₂_apply]
+ -- This was not needed before leanprover/lean4#2644
+ erw [AddMonoidHom.coe_mk]
simp only [AddMonoidHom.coe_mk, ZeroHom.coe_mk, toDirectSum_single]
+ -- This was not needed before leanprover/lean4#2644
+ dsimp
erw [AddMonoidAlgebra.single_mul_single, AddMonoidHom.coe_mk, ZeroHom.coe_mk,
AddMonoidAlgebra.toDirectSum_single]
simp only [AddMonoidHom.coe_comp, AddMonoidHom.coe_mul, AddMonoidHom.coe_mk, ZeroHom.coe_mk,
@@ -173,8 +173,8 @@ theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f
@[simp]
theorem toAddMonoidAlgebra_mul [AddMonoid ι] [Semiring M]
- [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ _ : ι, M) :
- (f * g).toAddMonoidAlgebra = toAddMonoidAlgebra f * toAddMonoidAlgebra g := by
+ [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ _ : ι, M) :
+ (f * g).toAddMonoidAlgebra = toAddMonoidAlgebra f * toAddMonoidAlgebra g := by
apply_fun AddMonoidAlgebra.toDirectSum
· simp
· apply Function.LeftInverse.injective
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -57,7 +57,7 @@ still involve this definition.
-/
-variable {ι : Type _} {R : Type _} {M : Type _} {A : Type _}
+variable {ι : Type*} {R : Type*} {M : Type*} {A : Type*}
open DirectSum
@@ -2,16 +2,13 @@
Copyright (c) 2021 Eric Wieser. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Eric Wieser
-
-! This file was ported from Lean 3 source module algebra.monoid_algebra.to_direct_sum
-! leanprover-community/mathlib commit c0a51cf2de54089d69301befc4c73bbc2f5c7342
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.DirectSum.Algebra
import Mathlib.Algebra.MonoidAlgebra.Basic
import Mathlib.Data.Finsupp.ToDFinsupp
+#align_import algebra.monoid_algebra.to_direct_sum from "leanprover-community/mathlib"@"c0a51cf2de54089d69301befc4c73bbc2f5c7342"
+
/-!
# Conversion between `AddMonoidAlgebra` and homogenous `DirectSum`
@@ -10,7 +10,7 @@ Authors: Eric Wieser
-/
import Mathlib.Algebra.DirectSum.Algebra
import Mathlib.Algebra.MonoidAlgebra.Basic
-import Mathlib.Data.Finsupp.ToDfinsupp
+import Mathlib.Data.Finsupp.ToDFinsupp
/-!
# Conversion between `AddMonoidAlgebra` and homogenous `DirectSum`
@@ -51,7 +51,7 @@ For the bundled equivalences, we provide lemmas that they reduce to
## Implementation notes
-This file largely just copies the API of `Mathlib/Data/Finsupp/ToDfinsupp.lean`, and reuses the
+This file largely just copies the API of `Mathlib/Data/Finsupp/ToDFinsupp.lean`, and reuses the
proofs. Recall that `AddMonoidAlgebra M ι` is defeq to `ι →₀ M` and `⨁ i : ι, M` is defeq to
`Π₀ i : ι, M`.
@@ -71,7 +71,7 @@ section Defs
/-- Interpret an `AddMonoidAlgebra` as a homogenous `DirectSum`. -/
def AddMonoidAlgebra.toDirectSum [Semiring M] (f : AddMonoidAlgebra M ι) : ⨁ _ : ι, M :=
- Finsupp.toDfinsupp f
+ Finsupp.toDFinsupp f
#align add_monoid_algebra.to_direct_sum AddMonoidAlgebra.toDirectSum
section
@@ -81,32 +81,32 @@ variable [DecidableEq ι] [Semiring M]
@[simp]
theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
AddMonoidAlgebra.toDirectSum (Finsupp.single i m) = DirectSum.of _ i m :=
- Finsupp.toDfinsupp_single i m
+ Finsupp.toDFinsupp_single i m
#align add_monoid_algebra.to_direct_sum_single AddMonoidAlgebra.toDirectSum_single
variable [∀ m : M, Decidable (m ≠ 0)]
/-- Interpret a homogenous `DirectSum` as an `AddMonoidAlgebra`. -/
def DirectSum.toAddMonoidAlgebra (f : ⨁ _ : ι, M) : AddMonoidAlgebra M ι :=
- Dfinsupp.toFinsupp f
+ DFinsupp.toFinsupp f
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
@[simp]
theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
(DirectSum.of _ i m : ⨁ _ : ι, M).toAddMonoidAlgebra = Finsupp.single i m :=
- Dfinsupp.toFinsupp_single i m
+ DFinsupp.toFinsupp_single i m
#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_of
@[simp]
theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra (f : AddMonoidAlgebra M ι) :
f.toDirectSum.toAddMonoidAlgebra = f :=
- Finsupp.toDfinsupp_toFinsupp f
+ Finsupp.toDFinsupp_toFinsupp f
#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra
@[simp]
theorem DirectSum.toAddMonoidAlgebra_toDirectSum (f : ⨁ _ : ι, M) :
f.toAddMonoidAlgebra.toDirectSum = f :=
- (Dfinsupp.toFinsupp_toDfinsupp (show Π₀ _ : ι, M from f) : _)
+ (DFinsupp.toFinsupp_toDFinsupp (show Π₀ _ : ι, M from f) : _)
#align direct_sum.to_add_monoid_algebra_to_direct_sum DirectSum.toAddMonoidAlgebra_toDirectSum
end
@@ -122,13 +122,13 @@ namespace AddMonoidAlgebra
@[simp]
theorem toDirectSum_zero [Semiring M] : (0 : AddMonoidAlgebra M ι).toDirectSum = 0 :=
- Finsupp.toDfinsupp_zero
+ Finsupp.toDFinsupp_zero
#align add_monoid_algebra.to_direct_sum_zero AddMonoidAlgebra.toDirectSum_zero
@[simp]
theorem toDirectSum_add [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f + g).toDirectSum = f.toDirectSum + g.toDirectSum :=
- Finsupp.toDfinsupp_add _ _
+ Finsupp.toDFinsupp_add _ _
#align add_monoid_algebra.to_direct_sum_add AddMonoidAlgebra.toDirectSum_add
@[simp]
@@ -165,13 +165,13 @@ variable [DecidableEq ι]
@[simp]
theorem toAddMonoidAlgebra_zero [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
toAddMonoidAlgebra 0 = (0 : AddMonoidAlgebra M ι) :=
- Dfinsupp.toFinsupp_zero
+ DFinsupp.toFinsupp_zero
#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zero
@[simp]
theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ _ : ι, M) :
(f + g).toAddMonoidAlgebra = toAddMonoidAlgebra f + toAddMonoidAlgebra g :=
- Dfinsupp.toFinsupp_add _ _
+ DFinsupp.toFinsupp_add _ _
#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_add
@[simp]
@@ -198,7 +198,7 @@ equiv. -/
@[simps (config := { fullyApplied := false })]
def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
AddMonoidAlgebra M ι ≃ ⨁ _ : ι, M :=
- { finsuppEquivDfinsupp with
+ { finsuppEquivDFinsupp with
toFun := AddMonoidAlgebra.toDirectSum
invFun := DirectSum.toAddMonoidAlgebra }
#align add_monoid_algebra_equiv_direct_sum addMonoidAlgebraEquivDirectSum
@@ -69,7 +69,7 @@ open DirectSum
section Defs
-/-- Interpret a `AddMonoidAlgebra` as a homogenous `DirectSum`. -/
+/-- Interpret an `AddMonoidAlgebra` as a homogenous `DirectSum`. -/
def AddMonoidAlgebra.toDirectSum [Semiring M] (f : AddMonoidAlgebra M ι) : ⨁ _ : ι, M :=
Finsupp.toDfinsupp f
#align add_monoid_algebra.to_direct_sum AddMonoidAlgebra.toDirectSum
@@ -86,7 +86,7 @@ theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
variable [∀ m : M, Decidable (m ≠ 0)]
-/-- Interpret a homogenous `DirectSum` as a `AddMonoidAlgebra`. -/
+/-- Interpret a homogenous `DirectSum` as an `AddMonoidAlgebra`. -/
def DirectSum.toAddMonoidAlgebra (f : ⨁ _ : ι, M) : AddMonoidAlgebra M ι :=
Dfinsupp.toFinsupp f
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
@@ -44,15 +44,15 @@ as well as preserving arithmetic operations.
For the bundled equivalences, we provide lemmas that they reduce to
`AddMonoidAlgebra.toDirectSum`:
-* `add_monoid_algebra_add_equiv_direct_sum_apply`
+* `addMonoidAlgebraAddEquivDirectSum_apply`
* `add_monoid_algebra_lequiv_direct_sum_apply`
-* `add_monoid_algebra_add_equiv_direct_sum_symm_apply`
+* `addMonoidAlgebraAddEquivDirectSum_symm_apply`
* `add_monoid_algebra_lequiv_direct_sum_symm_apply`
## Implementation notes
-This file largely just copies the API of `data/Finsupp/to_dfinsupp`, and reuses the proofs.
-Recall that `AddMonoidAlgebra M ι` is defeq to `ι →₀ M` and `⨁ i : ι, M` is defeq to
+This file largely just copies the API of `Mathlib/Data/Finsupp/ToDfinsupp.lean`, and reuses the
+proofs. Recall that `AddMonoidAlgebra M ι` is defeq to `ι →₀ M` and `⨁ i : ι, M` is defeq to
`Π₀ i : ι, M`.
Note that there is no `AddMonoidAlgebra` equivalent to `Finsupp.single`, so many statements
@@ -70,7 +70,7 @@ open DirectSum
section Defs
/-- Interpret a `AddMonoidAlgebra` as a homogenous `DirectSum`. -/
-def AddMonoidAlgebra.toDirectSum [Semiring M] (f : AddMonoidAlgebra M ι) : ⨁ _i : ι, M :=
+def AddMonoidAlgebra.toDirectSum [Semiring M] (f : AddMonoidAlgebra M ι) : ⨁ _ : ι, M :=
Finsupp.toDfinsupp f
#align add_monoid_algebra.to_direct_sum AddMonoidAlgebra.toDirectSum
@@ -87,13 +87,13 @@ theorem AddMonoidAlgebra.toDirectSum_single (i : ι) (m : M) :
variable [∀ m : M, Decidable (m ≠ 0)]
/-- Interpret a homogenous `DirectSum` as a `AddMonoidAlgebra`. -/
-def DirectSum.toAddMonoidAlgebra (f : ⨁ _i : ι, M) : AddMonoidAlgebra M ι :=
+def DirectSum.toAddMonoidAlgebra (f : ⨁ _ : ι, M) : AddMonoidAlgebra M ι :=
Dfinsupp.toFinsupp f
#align direct_sum.to_add_monoid_algebra DirectSum.toAddMonoidAlgebra
@[simp]
theorem DirectSum.toAddMonoidAlgebra_of (i : ι) (m : M) :
- (DirectSum.of _ i m : ⨁ _i : ι, M).toAddMonoidAlgebra = Finsupp.single i m :=
+ (DirectSum.of _ i m : ⨁ _ : ι, M).toAddMonoidAlgebra = Finsupp.single i m :=
Dfinsupp.toFinsupp_single i m
#align direct_sum.to_add_monoid_algebra_of DirectSum.toAddMonoidAlgebra_of
@@ -104,9 +104,9 @@ theorem AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra (f : AddMonoidAlgebra M
#align add_monoid_algebra.to_direct_sum_to_add_monoid_algebra AddMonoidAlgebra.toDirectSum_toAddMonoidAlgebra
@[simp]
-theorem DirectSum.toAddMonoidAlgebra_toDirectSum (f : ⨁ _i : ι, M) :
+theorem DirectSum.toAddMonoidAlgebra_toDirectSum (f : ⨁ _ : ι, M) :
f.toAddMonoidAlgebra.toDirectSum = f :=
- (Dfinsupp.toFinsupp_toDfinsupp (show Π₀ _i : ι, M from f) : _)
+ (Dfinsupp.toFinsupp_toDfinsupp (show Π₀ _ : ι, M from f) : _)
#align direct_sum.to_add_monoid_algebra_to_direct_sum DirectSum.toAddMonoidAlgebra_toDirectSum
end
@@ -134,7 +134,7 @@ theorem toDirectSum_add [Semiring M] (f g : AddMonoidAlgebra M ι) :
@[simp]
theorem toDirectSum_mul [DecidableEq ι] [AddMonoid ι] [Semiring M] (f g : AddMonoidAlgebra M ι) :
(f * g).toDirectSum = f.toDirectSum * g.toDirectSum := by
- let to_hom : AddMonoidAlgebra M ι →+ ⨁ _i : ι, M :=
+ let to_hom : AddMonoidAlgebra M ι →+ ⨁ _ : ι, M :=
{ toFun := toDirectSum
map_zero' := toDirectSum_zero
map_add' := toDirectSum_add }
@@ -169,14 +169,14 @@ theorem toAddMonoidAlgebra_zero [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
#align direct_sum.to_add_monoid_algebra_zero DirectSum.toAddMonoidAlgebra_zero
@[simp]
-theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ _i : ι, M) :
+theorem toAddMonoidAlgebra_add [Semiring M] [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ _ : ι, M) :
(f + g).toAddMonoidAlgebra = toAddMonoidAlgebra f + toAddMonoidAlgebra g :=
Dfinsupp.toFinsupp_add _ _
#align direct_sum.to_add_monoid_algebra_add DirectSum.toAddMonoidAlgebra_add
@[simp]
theorem toAddMonoidAlgebra_mul [AddMonoid ι] [Semiring M]
- [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ _i : ι, M) :
+ [∀ m : M, Decidable (m ≠ 0)] (f g : ⨁ _ : ι, M) :
(f * g).toAddMonoidAlgebra = toAddMonoidAlgebra f * toAddMonoidAlgebra g := by
apply_fun AddMonoidAlgebra.toDirectSum
· simp
@@ -197,7 +197,7 @@ section Equivs
equiv. -/
@[simps (config := { fullyApplied := false })]
def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
- AddMonoidAlgebra M ι ≃ ⨁ _i : ι, M :=
+ AddMonoidAlgebra M ι ≃ ⨁ _ : ι, M :=
{ finsuppEquivDfinsupp with
toFun := AddMonoidAlgebra.toDirectSum
invFun := DirectSum.toAddMonoidAlgebra }
@@ -206,9 +206,8 @@ def addMonoidAlgebraEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Dec
/-- The additive version of `AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum`. -/
@[simps (config := { fullyApplied := false })]
def addMonoidAlgebraAddEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M, Decidable (m ≠ 0)] :
- AddMonoidAlgebra M ι ≃+ ⨁ _i : ι, M :=
- {
- addMonoidAlgebraEquivDirectSum with
+ AddMonoidAlgebra M ι ≃+ ⨁ _ : ι, M :=
+ { addMonoidAlgebraEquivDirectSum with
toFun := AddMonoidAlgebra.toDirectSum
invFun := DirectSum.toAddMonoidAlgebra
map_add' := AddMonoidAlgebra.toDirectSum_add }
@@ -217,11 +216,8 @@ def addMonoidAlgebraAddEquivDirectSum [DecidableEq ι] [Semiring M] [∀ m : M,
/-- The ring version of `AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum`. -/
@[simps (config := { fullyApplied := false })]
def addMonoidAlgebraRingEquivDirectSum [DecidableEq ι] [AddMonoid ι] [Semiring M]
- [∀ m : M, Decidable (m ≠ 0)] : AddMonoidAlgebra M ι ≃+* ⨁ _i : ι, M :=
- {
- (addMonoidAlgebraAddEquivDirectSum :
- AddMonoidAlgebra M ι ≃+
- ⨁ _i : ι, M) with
+ [∀ m : M, Decidable (m ≠ 0)] : AddMonoidAlgebra M ι ≃+* ⨁ _ : ι, M :=
+ { (addMonoidAlgebraAddEquivDirectSum : AddMonoidAlgebra M ι ≃+ ⨁ _ : ι, M) with
toFun := AddMonoidAlgebra.toDirectSum
invFun := DirectSum.toAddMonoidAlgebra
map_mul' := AddMonoidAlgebra.toDirectSum_mul }
@@ -230,11 +226,8 @@ def addMonoidAlgebraRingEquivDirectSum [DecidableEq ι] [AddMonoid ι] [Semiring
/-- The algebra version of `AddMonoidAlgebra.addMonoidAlgebraEquivDirectSum`. -/
@[simps (config := { fullyApplied := false })]
def addMonoidAlgebraAlgEquivDirectSum [DecidableEq ι] [AddMonoid ι] [CommSemiring R] [Semiring A]
- [Algebra R A] [∀ m : A, Decidable (m ≠ 0)] : AddMonoidAlgebra A ι ≃ₐ[R] ⨁ _i : ι, A :=
- {
- (addMonoidAlgebraRingEquivDirectSum :
- AddMonoidAlgebra A ι ≃+*
- ⨁ _i : ι, A) with
+ [Algebra R A] [∀ m : A, Decidable (m ≠ 0)] : AddMonoidAlgebra A ι ≃ₐ[R] ⨁ _ : ι, A :=
+ { (addMonoidAlgebraRingEquivDirectSum : AddMonoidAlgebra A ι ≃+* ⨁ _ : ι, A) with
toFun := AddMonoidAlgebra.toDirectSum
invFun := DirectSum.toAddMonoidAlgebra
commutes' := fun _r => AddMonoidAlgebra.toDirectSum_single _ _ }
The unported dependencies are