ring_theory.matrix_algebra
⟷
Mathlib.RingTheory.MatrixAlgebra
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Eric Wieser
-/
import Data.Matrix.Basis
-import RingTheory.TensorProduct
+import LinearAlgebra.TensorProduct.Tower
#align_import ring_theory.matrix_algebra from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Eric Wieser
-/
-import Mathbin.Data.Matrix.Basis
-import Mathbin.RingTheory.TensorProduct
+import Data.Matrix.Basis
+import RingTheory.TensorProduct
#align_import ring_theory.matrix_algebra from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Eric Wieser
-
-! This file was ported from Lean 3 source module ring_theory.matrix_algebra
-! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Matrix.Basis
import Mathbin.RingTheory.TensorProduct
+#align_import ring_theory.matrix_algebra from "leanprover-community/mathlib"@"33c67ae661dd8988516ff7f247b0be3018cdd952"
+
/-!
> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
> Any changes to this file require a corresponding PR to mathlib4.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -51,12 +51,15 @@ def toFunBilinear : A →ₗ[R] Matrix n n R →ₗ[R] Matrix n n A :=
#align matrix_equiv_tensor.to_fun_bilinear MatrixEquivTensor.toFunBilinear
-/
+#print MatrixEquivTensor.toFunBilinear_apply /-
@[simp]
theorem toFunBilinear_apply (a : A) (m : Matrix n n R) :
toFunBilinear R A n a m = a • m.map (algebraMap R A) :=
rfl
#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_apply
+-/
+#print MatrixEquivTensor.toFunLinear /-
/-- (Implementation detail).
The function underlying `(A ⊗[R] matrix n n R) →ₐ[R] matrix n n A`,
as an `R`-linear map.
@@ -64,9 +67,11 @@ as an `R`-linear map.
def toFunLinear : A ⊗[R] Matrix n n R →ₗ[R] Matrix n n A :=
TensorProduct.lift (toFunBilinear R A n)
#align matrix_equiv_tensor.to_fun_linear MatrixEquivTensor.toFunLinear
+-/
variable [DecidableEq n] [Fintype n]
+#print MatrixEquivTensor.toFunAlgHom /-
/-- The function `(A ⊗[R] matrix n n R) →ₐ[R] matrix n n A`, as an algebra homomorphism.
-/
def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
@@ -84,12 +89,15 @@ def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
Matrix.map_one (algebraMap R A) (map_zero _) (map_one _), algebraMap_smul,
Algebra.algebraMap_eq_smul_one])
#align matrix_equiv_tensor.to_fun_alg_hom MatrixEquivTensor.toFunAlgHom
+-/
+#print MatrixEquivTensor.toFunAlgHom_apply /-
@[simp]
theorem toFunAlgHom_apply (a : A) (m : Matrix n n R) :
toFunAlgHom R A n (a ⊗ₜ m) = a • m.map (algebraMap R A) := by
simp [to_fun_alg_hom, alg_hom_of_linear_map_tensor_product, to_fun_linear]
#align matrix_equiv_tensor.to_fun_alg_hom_apply MatrixEquivTensor.toFunAlgHom_apply
+-/
#print MatrixEquivTensor.invFun /-
/-- (Implementation detail.)
@@ -102,20 +110,27 @@ def invFun (M : Matrix n n A) : A ⊗[R] Matrix n n R :=
#align matrix_equiv_tensor.inv_fun MatrixEquivTensor.invFun
-/
+#print MatrixEquivTensor.invFun_zero /-
@[simp]
theorem invFun_zero : invFun R A n 0 = 0 := by simp [inv_fun]
#align matrix_equiv_tensor.inv_fun_zero MatrixEquivTensor.invFun_zero
+-/
+#print MatrixEquivTensor.invFun_add /-
@[simp]
theorem invFun_add (M N : Matrix n n A) : invFun R A n (M + N) = invFun R A n M + invFun R A n N :=
by simp [inv_fun, add_tmul, Finset.sum_add_distrib]
#align matrix_equiv_tensor.inv_fun_add MatrixEquivTensor.invFun_add
+-/
+#print MatrixEquivTensor.invFun_smul /-
@[simp]
theorem invFun_smul (a : A) (M : Matrix n n A) : invFun R A n (a • M) = a ⊗ₜ 1 * invFun R A n M :=
by simp [inv_fun, Finset.mul_sum]
#align matrix_equiv_tensor.inv_fun_smul MatrixEquivTensor.invFun_smul
+-/
+#print MatrixEquivTensor.invFun_algebraMap /-
@[simp]
theorem invFun_algebraMap (M : Matrix n n R) : invFun R A n (M.map (algebraMap R A)) = 1 ⊗ₜ M :=
by
@@ -125,7 +140,9 @@ theorem invFun_algebraMap (M : Matrix n n R) : invFun R A n (M.map (algebraMap R
conv_rhs => rw [matrix_eq_sum_std_basis M]
convert Finset.sum_product; simp
#align matrix_equiv_tensor.inv_fun_algebra_map MatrixEquivTensor.invFun_algebraMap
+-/
+#print MatrixEquivTensor.right_inv /-
theorem right_inv (M : Matrix n n A) : (toFunAlgHom R A n) (invFun R A n M) = M :=
by
simp only [inv_fun, AlgHom.map_sum, std_basis_matrix, apply_ite ⇑(algebraMap R A), smul_eq_mul,
@@ -133,7 +150,9 @@ theorem right_inv (M : Matrix n n A) : (toFunAlgHom R A n) (invFun R A n M) = M
Pi.smul_def]
convert Finset.sum_product; apply matrix_eq_sum_std_basis
#align matrix_equiv_tensor.right_inv MatrixEquivTensor.right_inv
+-/
+#print MatrixEquivTensor.left_inv /-
theorem left_inv (M : A ⊗[R] Matrix n n R) : invFun R A n (toFunAlgHom R A n M) = M :=
by
induction' M using TensorProduct.induction_on with a m x y hx hy
@@ -141,6 +160,7 @@ theorem left_inv (M : A ⊗[R] Matrix n n R) : invFun R A n (toFunAlgHom R A n M
· simp
· simp [AlgHom.map_sum, hx, hy]
#align matrix_equiv_tensor.left_inv MatrixEquivTensor.left_inv
+-/
#print MatrixEquivTensor.equiv /-
/-- (Implementation detail)
@@ -160,20 +180,25 @@ end matrixEquivTensor
variable [Fintype n] [DecidableEq n]
+#print matrixEquivTensor /-
/-- The `R`-algebra isomorphism `matrix n n A ≃ₐ[R] (A ⊗[R] matrix n n R)`.
-/
def matrixEquivTensor : Matrix n n A ≃ₐ[R] A ⊗[R] Matrix n n R :=
AlgEquiv.symm { MatrixEquivTensor.toFunAlgHom R A n, MatrixEquivTensor.equiv R A n with }
#align matrix_equiv_tensor matrixEquivTensor
+-/
open matrixEquivTensor
+#print matrixEquivTensor_apply /-
@[simp]
theorem matrixEquivTensor_apply (M : Matrix n n A) :
matrixEquivTensor R A n M = ∑ p : n × n, M p.1 p.2 ⊗ₜ stdBasisMatrix p.1 p.2 1 :=
rfl
#align matrix_equiv_tensor_apply matrixEquivTensor_apply
+-/
+#print matrixEquivTensor_apply_std_basis /-
@[simp]
theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
matrixEquivTensor R A n (stdBasisMatrix i j x) = x ⊗ₜ stdBasisMatrix i j 1 :=
@@ -181,7 +206,9 @@ theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
have t : ∀ p : n × n, i = p.1 ∧ j = p.2 ↔ p = (i, j) := by tidy
simp [ite_tmul, t, std_basis_matrix]
#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basis
+-/
+#print matrixEquivTensor_apply_symm /-
@[simp]
theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
(matrixEquivTensor R A n).symm (a ⊗ₜ M) = M.map fun x => a * algebraMap R A x :=
@@ -189,4 +216,5 @@ theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
simp [matrixEquivTensor, to_fun_alg_hom, alg_hom_of_linear_map_tensor_product, to_fun_linear]
rfl
#align matrix_equiv_tensor_apply_symm matrixEquivTensor_apply_symm
+-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -85,13 +85,11 @@ def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
Algebra.algebraMap_eq_smul_one])
#align matrix_equiv_tensor.to_fun_alg_hom MatrixEquivTensor.toFunAlgHom
-#print MatrixEquivTensor.toFunAlgHom_apply /-
@[simp]
theorem toFunAlgHom_apply (a : A) (m : Matrix n n R) :
toFunAlgHom R A n (a ⊗ₜ m) = a • m.map (algebraMap R A) := by
simp [to_fun_alg_hom, alg_hom_of_linear_map_tensor_product, to_fun_linear]
#align matrix_equiv_tensor.to_fun_alg_hom_apply MatrixEquivTensor.toFunAlgHom_apply
--/
#print MatrixEquivTensor.invFun /-
/-- (Implementation detail.)
@@ -128,7 +126,6 @@ theorem invFun_algebraMap (M : Matrix n n R) : invFun R A n (M.map (algebraMap R
convert Finset.sum_product; simp
#align matrix_equiv_tensor.inv_fun_algebra_map MatrixEquivTensor.invFun_algebraMap
-#print MatrixEquivTensor.right_inv /-
theorem right_inv (M : Matrix n n A) : (toFunAlgHom R A n) (invFun R A n M) = M :=
by
simp only [inv_fun, AlgHom.map_sum, std_basis_matrix, apply_ite ⇑(algebraMap R A), smul_eq_mul,
@@ -136,9 +133,7 @@ theorem right_inv (M : Matrix n n A) : (toFunAlgHom R A n) (invFun R A n M) = M
Pi.smul_def]
convert Finset.sum_product; apply matrix_eq_sum_std_basis
#align matrix_equiv_tensor.right_inv MatrixEquivTensor.right_inv
--/
-#print MatrixEquivTensor.left_inv /-
theorem left_inv (M : A ⊗[R] Matrix n n R) : invFun R A n (toFunAlgHom R A n M) = M :=
by
induction' M using TensorProduct.induction_on with a m x y hx hy
@@ -146,7 +141,6 @@ theorem left_inv (M : A ⊗[R] Matrix n n R) : invFun R A n (toFunAlgHom R A n M
· simp
· simp [AlgHom.map_sum, hx, hy]
#align matrix_equiv_tensor.left_inv MatrixEquivTensor.left_inv
--/
#print MatrixEquivTensor.equiv /-
/-- (Implementation detail)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -21,9 +21,9 @@ We show `matrix n n A ≃ₐ[R] (A ⊗[R] matrix n n R)`.
universe u v w
-open TensorProduct
+open scoped TensorProduct
-open BigOperators
+open scoped BigOperators
open TensorProduct
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -51,21 +51,12 @@ def toFunBilinear : A →ₗ[R] Matrix n n R →ₗ[R] Matrix n n A :=
#align matrix_equiv_tensor.to_fun_bilinear MatrixEquivTensor.toFunBilinear
-/
-/- warning: matrix_equiv_tensor.to_fun_bilinear_apply -> MatrixEquivTensor.toFunBilinear_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_applyₓ'. -/
@[simp]
theorem toFunBilinear_apply (a : A) (m : Matrix n n R) :
toFunBilinear R A n a m = a • m.map (algebraMap R A) :=
rfl
#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_apply
-/- warning: matrix_equiv_tensor.to_fun_linear -> MatrixEquivTensor.toFunLinear is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}), LinearMap.{u1, u1, max u2 u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (TensorProduct.addCommMonoid.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (TensorProduct.module.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}), LinearMap.{u1, u1, max (max u1 u3) u2, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (TensorProduct.addCommMonoid.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_linear MatrixEquivTensor.toFunLinearₓ'. -/
/-- (Implementation detail).
The function underlying `(A ⊗[R] matrix n n R) →ₐ[R] matrix n n A`,
as an `R`-linear map.
@@ -76,12 +67,6 @@ def toFunLinear : A ⊗[R] Matrix n n R →ₗ[R] Matrix n n A :=
variable [DecidableEq n] [Fintype n]
-/- warning: matrix_equiv_tensor.to_fun_alg_hom -> MatrixEquivTensor.toFunAlgHom is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], AlgHom.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 _inst_2 _inst_3)
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], AlgHom.{u1, max (max u1 u3) u2, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 _inst_2 _inst_3)
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_alg_hom MatrixEquivTensor.toFunAlgHomₓ'. -/
/-- The function `(A ⊗[R] matrix n n R) →ₐ[R] matrix n n A`, as an algebra homomorphism.
-/
def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
@@ -119,35 +104,20 @@ def invFun (M : Matrix n n A) : A ⊗[R] Matrix n n R :=
#align matrix_equiv_tensor.inv_fun MatrixEquivTensor.invFun
-/
-/- warning: matrix_equiv_tensor.inv_fun_zero -> MatrixEquivTensor.invFun_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_zero MatrixEquivTensor.invFun_zeroₓ'. -/
@[simp]
theorem invFun_zero : invFun R A n 0 = 0 := by simp [inv_fun]
#align matrix_equiv_tensor.inv_fun_zero MatrixEquivTensor.invFun_zero
-/- warning: matrix_equiv_tensor.inv_fun_add -> MatrixEquivTensor.invFun_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_add MatrixEquivTensor.invFun_addₓ'. -/
@[simp]
theorem invFun_add (M N : Matrix n n A) : invFun R A n (M + N) = invFun R A n M + invFun R A n N :=
by simp [inv_fun, add_tmul, Finset.sum_add_distrib]
#align matrix_equiv_tensor.inv_fun_add MatrixEquivTensor.invFun_add
-/- warning: matrix_equiv_tensor.inv_fun_smul -> MatrixEquivTensor.invFun_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_smul MatrixEquivTensor.invFun_smulₓ'. -/
@[simp]
theorem invFun_smul (a : A) (M : Matrix n n A) : invFun R A n (a • M) = a ⊗ₜ 1 * invFun R A n M :=
by simp [inv_fun, Finset.mul_sum]
#align matrix_equiv_tensor.inv_fun_smul MatrixEquivTensor.invFun_smul
-/- warning: matrix_equiv_tensor.inv_fun_algebra_map -> MatrixEquivTensor.invFun_algebraMap is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (Matrix.map.{u1, u2, u3, u3} n n R A M (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))) M)
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u1} n n R), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (Matrix.map.{u1, u2, u3, u3} n n R A M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} A 1 (One.toOfNat1.{u2} A (Semiring.toOne.{u2} A _inst_2))) M)
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_algebra_map MatrixEquivTensor.invFun_algebraMapₓ'. -/
@[simp]
theorem invFun_algebraMap (M : Matrix n n R) : invFun R A n (M.map (algebraMap R A)) = 1 ⊗ₜ M :=
by
@@ -196,12 +166,6 @@ end matrixEquivTensor
variable [Fintype n] [DecidableEq n]
-/- warning: matrix_equiv_tensor -> matrixEquivTensor is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n], AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n], AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor matrixEquivTensorₓ'. -/
/-- The `R`-algebra isomorphism `matrix n n A ≃ₐ[R] (A ⊗[R] matrix n n R)`.
-/
def matrixEquivTensor : Matrix n n A ≃ₐ[R] A ⊗[R] Matrix n n R :=
@@ -210,18 +174,12 @@ def matrixEquivTensor : Matrix n n A ≃ₐ[R] A ⊗[R] Matrix n n R :=
open matrixEquivTensor
-/- warning: matrix_equiv_tensor_apply -> matrixEquivTensor_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply matrixEquivTensor_applyₓ'. -/
@[simp]
theorem matrixEquivTensor_apply (M : Matrix n n A) :
matrixEquivTensor R A n M = ∑ p : n × n, M p.1 p.2 ⊗ₜ stdBasisMatrix p.1 p.2 1 :=
rfl
#align matrix_equiv_tensor_apply matrixEquivTensor_apply
-/- warning: matrix_equiv_tensor_apply_std_basis -> matrixEquivTensor_apply_std_basis is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basisₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
matrixEquivTensor R A n (stdBasisMatrix i j x) = x ⊗ₜ stdBasisMatrix i j 1 :=
@@ -230,9 +188,6 @@ theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
simp [ite_tmul, t, std_basis_matrix]
#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basis
-/- warning: matrix_equiv_tensor_apply_symm -> matrixEquivTensor_apply_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_symm matrixEquivTensor_apply_symmₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
(matrixEquivTensor R A n).symm (a ⊗ₜ M) = M.map fun x => a * algebraMap R A x :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -52,10 +52,7 @@ def toFunBilinear : A →ₗ[R] Matrix n n R →ₗ[R] Matrix n n A :=
-/
/- warning: matrix_equiv_tensor.to_fun_bilinear_apply -> MatrixEquivTensor.toFunBilinear_apply is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u3 u1)) (succ (max u3 u2)), max (succ (max u3 u1)) (succ (max u3 u2))} (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (fun (_x : LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) => (Matrix.{u3, u3, u1} n n R) -> (Matrix.{u3, u3, u2} n n A)) (LinearMap.hasCoeToFun.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ u2) (succ (max (max u3 u1) u3 u2)), max (succ u2) (succ (max (max u3 u1) u3 u2))} (LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) (fun (_x : LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) => A -> (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (LinearMap.hasCoeToFun.{u1, u1, u2, max (max u3 u1) u3 u2} R R A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (SMul.smul.{u2, max u3 u2} A (Matrix.{u3, u3, u2} n n A) (Matrix.hasSmul.{u2, u3, u3, u2} n n A A (Mul.toSMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) m) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) a) (Matrix.{u3, u3, u1} n n R) (fun (_x : Matrix.{u3, u3, u1} n n R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), succ u2, max (max (succ u1) (succ u2)) (succ u3)} (LinearMap.{u1, u1, u2, max (max u2 u3) u1 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max (max u1 u2) u3} R R A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (HSMul.hSMul.{u2, max u3 u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_applyₓ'. -/
@[simp]
theorem toFunBilinear_apply (a : A) (m : Matrix n n R) :
@@ -123,20 +120,14 @@ def invFun (M : Matrix n n A) : A ⊗[R] Matrix n n R :=
-/
/- warning: matrix_equiv_tensor.inv_fun_zero -> MatrixEquivTensor.invFun_zero is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (OfNat.ofNat.{max u3 u2} (Matrix.{u3, u3, u2} n n A) 0 (OfNat.mk.{max u3 u2} (Matrix.{u3, u3, u2} n n A) 0 (Zero.zero.{max u3 u2} (Matrix.{u3, u3, u2} n n A) (Matrix.hasZero.{u2, u3, u3} n n A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))))) (OfNat.ofNat.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) 0 (OfNat.mk.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) 0 (Zero.zero.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroClass.toHasZero.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (OfNat.ofNat.{max u2 u3} (Matrix.{u3, u3, u2} n n A) 0 (Zero.toOfNat0.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.zero.{u2, u3, u3} n n A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)))))) (OfNat.ofNat.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) 0 (Zero.toOfNat0.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toMonoidWithZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_zero MatrixEquivTensor.invFun_zeroₓ'. -/
@[simp]
theorem invFun_zero : invFun R A n 0 = 0 := by simp [inv_fun]
#align matrix_equiv_tensor.inv_fun_zero MatrixEquivTensor.invFun_zero
/- warning: matrix_equiv_tensor.inv_fun_add -> MatrixEquivTensor.invFun_add is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u2} n n A) (N : Matrix.{u3, u3, u2} n n A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHAdd.{max u3 u2} (Matrix.{u3, u3, u2} n n A) (Matrix.hasAdd.{u2, u3, u3} n n A (Distrib.toHasAdd.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) M N)) (HAdd.hAdd.{max u2 u3 u1, max u2 u3 u1, max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHAdd.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 N))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u2} n n A) (N : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHAdd.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.add.{u2, u3, u3} n n A (Distrib.toAdd.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) M N)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHAdd.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 N))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_add MatrixEquivTensor.invFun_addₓ'. -/
@[simp]
theorem invFun_add (M N : Matrix n n A) : invFun R A n (M + N) = invFun R A n M + invFun R A n N :=
@@ -144,10 +135,7 @@ theorem invFun_add (M N : Matrix n n A) : invFun R A n (M + N) = invFun R A n M
#align matrix_equiv_tensor.inv_fun_add MatrixEquivTensor.invFun_add
/- warning: matrix_equiv_tensor.inv_fun_smul -> MatrixEquivTensor.invFun_smul is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (a : A) (M : Matrix.{u3, u3, u2} n n A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (SMul.smul.{u2, max u3 u2} A (Matrix.{u3, u3, u2} n n A) (Matrix.hasSmul.{u2, u3, u3, u2} n n A A (Mul.toSMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) a M)) (HMul.hMul.{max u2 u3 u1, max u2 u3 u1, max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHMul.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a (OfNat.ofNat.{max u3 u1} (Matrix.{u3, u3, u1} n n R) 1 (OfNat.mk.{max u3 u1} (Matrix.{u3, u3, u1} n n R) 1 (One.one.{max u3 u1} (Matrix.{u3, u3, u1} n n R) (Matrix.hasOne.{u1, u3} n R (fun (a : n) (b : n) => _inst_4 a b) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (a : A) (M : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (HSMul.hSMul.{u2, max u2 u3, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a M)) (HMul.hMul.{max u2 u1 u3, max (max u1 u2) u3, max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHMul.{max u2 u1 u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a (OfNat.ofNat.{max u1 u3} (Matrix.{u3, u3, u1} n n R) 1 (One.toOfNat1.{max u1 u3} (Matrix.{u3, u3, u1} n n R) (Matrix.one.{u1, u3} n R (fun (a : n) (b : n) => _inst_4 a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_smul MatrixEquivTensor.invFun_smulₓ'. -/
@[simp]
theorem invFun_smul (a : A) (M : Matrix n n A) : invFun R A n (a • M) = a ⊗ₜ 1 * invFun R A n M :=
@@ -223,10 +211,7 @@ def matrixEquivTensor : Matrix n n A ≃ₐ[R] A ⊗[R] Matrix n n R :=
open matrixEquivTensor
/- warning: matrix_equiv_tensor_apply -> matrixEquivTensor_apply is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (M : Matrix.{u3, u3, u2} n n A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ (max u3 u2)) (succ (max u2 u3 u1)), max (succ (max u3 u2)) (succ (max u2 u3 u1))} (AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (fun (_x : AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) => (Matrix.{u3, u3, u2} n n A) -> (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AlgEquiv.hasCoeToFun.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) M) (Finset.sum.{max u2 u3 u1, u3} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Prod.{u3, u3} n n) (TensorProduct.addCommMonoid.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Finset.univ.{u3} (Prod.{u3, u3} n n) (Prod.fintype.{u3, u3} n n _inst_4 _inst_4)) (fun (p : Prod.{u3, u3} n n) => TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (M (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p)) (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))))))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (M : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) M) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) M) (Finset.sum.{max (max u1 u3) u2, u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Prod.{u3, u3} n n) (Algebra.TensorProduct.instAddCommMonoidTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Finset.univ.{u3} (Prod.{u3, u3} n n) (instFintypeProd.{u3, u3} n n _inst_4 _inst_4)) (fun (p : Prod.{u3, u3} n n) => TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (M (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p)) (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply matrixEquivTensor_applyₓ'. -/
@[simp]
theorem matrixEquivTensor_apply (M : Matrix n n A) :
@@ -235,10 +220,7 @@ theorem matrixEquivTensor_apply (M : Matrix n n A) :
#align matrix_equiv_tensor_apply matrixEquivTensor_apply
/- warning: matrix_equiv_tensor_apply_std_basis -> matrixEquivTensor_apply_std_basis is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (i : n) (j : n) (x : A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ (max u3 u2)) (succ (max u2 u3 u1)), max (succ (max u3 u2)) (succ (max u2 u3 u1))} (AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (fun (_x : AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) => (Matrix.{u3, u3, u2} n n A) -> (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AlgEquiv.hasCoeToFun.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) x (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) i j (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (i : n) (j : n) (x : A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) x (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) i j (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basisₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
@@ -249,10 +231,7 @@ theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basis
/- warning: matrix_equiv_tensor_apply_symm -> matrixEquivTensor_apply_symm is a dubious translation:
-lean 3 declaration is
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u2 u3 u1)) (succ (max u3 u2)), max (succ (max u2 u3 u1)) (succ (max u3 u2))} (AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (fun (_x : AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) => (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) -> (Matrix.{u3, u3, u2} n n A)) (AlgEquiv.hasCoeToFun.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (AlgEquiv.symm.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) a (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
-but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (fun (_x : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max (max u1 u2) u3, max u2 u3, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))))))) (AlgEquiv.symm.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) x) A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) a (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_symm matrixEquivTensor_apply_symmₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -55,7 +55,7 @@ def toFunBilinear : A →ₗ[R] Matrix n n R →ₗ[R] Matrix n n A :=
lean 3 declaration is
forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u3 u1)) (succ (max u3 u2)), max (succ (max u3 u1)) (succ (max u3 u2))} (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (fun (_x : LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) => (Matrix.{u3, u3, u1} n n R) -> (Matrix.{u3, u3, u2} n n A)) (LinearMap.hasCoeToFun.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ u2) (succ (max (max u3 u1) u3 u2)), max (succ u2) (succ (max (max u3 u1) u3 u2))} (LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) (fun (_x : LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) => A -> (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (LinearMap.hasCoeToFun.{u1, u1, u2, max (max u3 u1) u3 u2} R R A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (SMul.smul.{u2, max u3 u2} A (Matrix.{u3, u3, u2} n n A) (Matrix.hasSmul.{u2, u3, u3, u2} n n A A (Mul.toSMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) m) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) a) (Matrix.{u3, u3, u1} n n R) (fun (_x : Matrix.{u3, u3, u1} n n R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), succ u2, max (max (succ u1) (succ u2)) (succ u3)} (LinearMap.{u1, u1, u2, max (max u2 u3) u1 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max (max u1 u2) u3} R R A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (HSMul.hSMul.{u2, max u3 u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) m) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) a) (Matrix.{u3, u3, u1} n n R) (fun (_x : Matrix.{u3, u3, u1} n n R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), succ u2, max (max (succ u1) (succ u2)) (succ u3)} (LinearMap.{u1, u1, u2, max (max u2 u3) u1 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max (max u1 u2) u3} R R A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (HSMul.hSMul.{u2, max u3 u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_applyₓ'. -/
@[simp]
theorem toFunBilinear_apply (a : A) (m : Matrix n n R) :
@@ -226,7 +226,7 @@ open matrixEquivTensor
lean 3 declaration is
forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (M : Matrix.{u3, u3, u2} n n A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ (max u3 u2)) (succ (max u2 u3 u1)), max (succ (max u3 u2)) (succ (max u2 u3 u1))} (AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (fun (_x : AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) => (Matrix.{u3, u3, u2} n n A) -> (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AlgEquiv.hasCoeToFun.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) M) (Finset.sum.{max u2 u3 u1, u3} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Prod.{u3, u3} n n) (TensorProduct.addCommMonoid.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Finset.univ.{u3} (Prod.{u3, u3} n n) (Prod.fintype.{u3, u3} n n _inst_4 _inst_4)) (fun (p : Prod.{u3, u3} n n) => TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (M (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p)) (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))))))
but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (M : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) M) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) M) (Finset.sum.{max (max u1 u3) u2, u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Prod.{u3, u3} n n) (Algebra.TensorProduct.instAddCommMonoidTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Finset.univ.{u3} (Prod.{u3, u3} n n) (instFintypeProd.{u3, u3} n n _inst_4 _inst_4)) (fun (p : Prod.{u3, u3} n n) => TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (M (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p)) (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (M : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) M) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) M) (Finset.sum.{max (max u1 u3) u2, u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Prod.{u3, u3} n n) (Algebra.TensorProduct.instAddCommMonoidTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Finset.univ.{u3} (Prod.{u3, u3} n n) (instFintypeProd.{u3, u3} n n _inst_4 _inst_4)) (fun (p : Prod.{u3, u3} n n) => TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (M (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p)) (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply matrixEquivTensor_applyₓ'. -/
@[simp]
theorem matrixEquivTensor_apply (M : Matrix n n A) :
@@ -238,7 +238,7 @@ theorem matrixEquivTensor_apply (M : Matrix n n A) :
lean 3 declaration is
forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (i : n) (j : n) (x : A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ (max u3 u2)) (succ (max u2 u3 u1)), max (succ (max u3 u2)) (succ (max u2 u3 u1))} (AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (fun (_x : AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) => (Matrix.{u3, u3, u2} n n A) -> (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AlgEquiv.hasCoeToFun.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) x (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) i j (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))))
but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (i : n) (j : n) (x : A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) x (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) i j (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (i : n) (j : n) (x : A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) x (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) i j (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basisₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
@@ -252,7 +252,7 @@ theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
lean 3 declaration is
forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u2 u3 u1)) (succ (max u3 u2)), max (succ (max u2 u3 u1)) (succ (max u3 u2))} (AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (fun (_x : AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) => (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) -> (Matrix.{u3, u3, u2} n n A)) (AlgEquiv.hasCoeToFun.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (AlgEquiv.symm.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) a (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (fun (_x : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max (max u1 u2) u3, max u2 u3, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))))))) (AlgEquiv.symm.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) x) A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) a (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (fun (_x : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max (max u1 u2) u3, max u2 u3, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))))))) (AlgEquiv.symm.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) x) A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) a (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_symm matrixEquivTensor_apply_symmₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Eric Wieser
! This file was ported from Lean 3 source module ring_theory.matrix_algebra
-! leanprover-community/mathlib commit 6c351a8fb9b06e5a542fdf427bfb9f46724f9453
+! leanprover-community/mathlib commit 33c67ae661dd8988516ff7f247b0be3018cdd952
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -12,6 +12,9 @@ import Mathbin.Data.Matrix.Basis
import Mathbin.RingTheory.TensorProduct
/-!
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We show `matrix n n A ≃ₐ[R] (A ⊗[R] matrix n n R)`.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -52,7 +52,7 @@ def toFunBilinear : A →ₗ[R] Matrix n n R →ₗ[R] Matrix n n A :=
lean 3 declaration is
forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u3 u1)) (succ (max u3 u2)), max (succ (max u3 u1)) (succ (max u3 u2))} (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (fun (_x : LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) => (Matrix.{u3, u3, u1} n n R) -> (Matrix.{u3, u3, u2} n n A)) (LinearMap.hasCoeToFun.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ u2) (succ (max (max u3 u1) u3 u2)), max (succ u2) (succ (max (max u3 u1) u3 u2))} (LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) (fun (_x : LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) => A -> (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (LinearMap.hasCoeToFun.{u1, u1, u2, max (max u3 u1) u3 u2} R R A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (SMul.smul.{u2, max u3 u2} A (Matrix.{u3, u3, u2} n n A) (Matrix.hasSmul.{u2, u3, u3, u2} n n A A (Mul.toSMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) m) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) a) (Matrix.{u3, u3, u1} n n R) (fun (_x : Matrix.{u3, u3, u1} n n R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), succ u2, max (max (succ u1) (succ u2)) (succ u3)} (LinearMap.{u1, u1, u2, max (max u2 u3) u1 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max (max u1 u2) u3} R R A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (HSMul.hSMul.{u2, max u3 u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) m) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) a) (Matrix.{u3, u3, u1} n n R) (fun (_x : Matrix.{u3, u3, u1} n n R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), succ u2, max (max (succ u1) (succ u2)) (succ u3)} (LinearMap.{u1, u1, u2, max (max u2 u3) u1 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max (max u1 u2) u3} R R A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (HSMul.hSMul.{u2, max u3 u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_applyₓ'. -/
@[simp]
theorem toFunBilinear_apply (a : A) (m : Matrix n n R) :
@@ -155,7 +155,7 @@ theorem invFun_smul (a : A) (M : Matrix n n A) : invFun R A n (a • M) = a ⊗
lean 3 declaration is
forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (Matrix.map.{u1, u2, u3, u3} n n R A M (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))) M)
but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u1} n n R), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (Matrix.map.{u1, u2, u3, u3} n n R A M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} A 1 (One.toOfNat1.{u2} A (Semiring.toOne.{u2} A _inst_2))) M)
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u1} n n R), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (Matrix.map.{u1, u2, u3, u3} n n R A M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} A 1 (One.toOfNat1.{u2} A (Semiring.toOne.{u2} A _inst_2))) M)
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_algebra_map MatrixEquivTensor.invFun_algebraMapₓ'. -/
@[simp]
theorem invFun_algebraMap (M : Matrix n n R) : invFun R A n (M.map (algebraMap R A)) = 1 ⊗ₜ M :=
@@ -249,7 +249,7 @@ theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
lean 3 declaration is
forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u2 u3 u1)) (succ (max u3 u2)), max (succ (max u2 u3 u1)) (succ (max u3 u2))} (AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (fun (_x : AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) => (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) -> (Matrix.{u3, u3, u2} n n A)) (AlgEquiv.hasCoeToFun.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (AlgEquiv.symm.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) a (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
but is expected to have type
- forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (fun (_x : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max (max u1 u2) u3, max u2 u3, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))))))) (AlgEquiv.symm.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) x) A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) a (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (fun (_x : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max (max u1 u2) u3, max u2 u3, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))))))) (AlgEquiv.symm.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) x) A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) a (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_symm matrixEquivTensor_apply_symmₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -38,6 +38,7 @@ variable (R A n)
namespace matrixEquivTensor
+#print MatrixEquivTensor.toFunBilinear /-
/-- (Implementation detail).
The function underlying `(A ⊗[R] matrix n n R) →ₐ[R] matrix n n A`,
as an `R`-bilinear map.
@@ -45,13 +46,26 @@ as an `R`-bilinear map.
def toFunBilinear : A →ₗ[R] Matrix n n R →ₗ[R] Matrix n n A :=
(Algebra.lsmul R (Matrix n n A)).toLinearMap.compl₂ (Algebra.linearMap R A).mapMatrix
#align matrix_equiv_tensor.to_fun_bilinear MatrixEquivTensor.toFunBilinear
+-/
+/- warning: matrix_equiv_tensor.to_fun_bilinear_apply -> MatrixEquivTensor.toFunBilinear_apply is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u3 u1)) (succ (max u3 u2)), max (succ (max u3 u1)) (succ (max u3 u2))} (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (fun (_x : LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) => (Matrix.{u3, u3, u1} n n R) -> (Matrix.{u3, u3, u2} n n A)) (LinearMap.hasCoeToFun.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ u2) (succ (max (max u3 u1) u3 u2)), max (succ u2) (succ (max (max u3 u1) u3 u2))} (LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) (fun (_x : LinearMap.{u1, u1, u2, max (max u3 u1) u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n))) => A -> (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (LinearMap.hasCoeToFun.{u1, u1, u2, max (max u3 u1) u3 u2} R R A (LinearMap.{u1, u1, max u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u3 u1, max u3 u2} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.module.{u1, u1, u1, max u3 u1, max u3 u2} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (MatrixEquivTensor.toFunBilinear._proof_1.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (SMul.smul.{u2, max u3 u2} A (Matrix.{u3, u3, u2} n n A) (Matrix.hasSmul.{u2, u3, u3, u2} n n A A (Mul.toSMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) (a : A) (m : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) m) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u1) (succ u3), max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) a) (Matrix.{u3, u3, u1} n n R) (fun (_x : Matrix.{u3, u3, u1} n n R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Matrix.{u3, u3, u1} n n R) => Matrix.{u3, u3, u2} n n A) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), succ u2, max (max (succ u1) (succ u2)) (succ u3)} (LinearMap.{u1, u1, u2, max (max u2 u3) u1 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))))))) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max (max u1 u2) u3} R R A (LinearMap.{u1, u1, max u1 u3, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (LinearMap.addCommMonoid.{u1, u1, max u1 u3, max u2 u3} R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u1, max u1 u3, max u2 u3} R R R (Matrix.{u3, u3, u1} n n R) (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R _inst_1) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)) (Matrix.smulCommClass.{u2, u3, u3, u1, u1} n n R R A _inst_3.0 _inst_3.0 (smulCommClass_self.{u1, u2} R A (CommSemiring.toCommMonoid.{u1} R _inst_1) (MulActionWithZero.toMulAction.{u1, u2} R A (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (Module.toMulActionWithZero.{u1, u2} R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3)))))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.toFunBilinear.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n) a) m) (HSMul.hSMul.{u2, max u3 u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a (Matrix.map.{u1, u2, u3, u3} n n R A m (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3))))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_applyₓ'. -/
@[simp]
theorem toFunBilinear_apply (a : A) (m : Matrix n n R) :
toFunBilinear R A n a m = a • m.map (algebraMap R A) :=
rfl
#align matrix_equiv_tensor.to_fun_bilinear_apply MatrixEquivTensor.toFunBilinear_apply
+/- warning: matrix_equiv_tensor.to_fun_linear -> MatrixEquivTensor.toFunLinear is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}), LinearMap.{u1, u1, max u2 u3 u1, max u3 u2} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (TensorProduct.addCommMonoid.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (TensorProduct.module.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}), LinearMap.{u1, u1, max (max u1 u3) u2, max u2 u3} R R (CommSemiring.toSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (TensorProduct.addCommMonoid.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.addCommMonoid.{u2, u3, u3} n n A (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.module.{u2, u3, u3, u1} n n R A (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_linear MatrixEquivTensor.toFunLinearₓ'. -/
/-- (Implementation detail).
The function underlying `(A ⊗[R] matrix n n R) →ₐ[R] matrix n n A`,
as an `R`-linear map.
@@ -62,6 +76,12 @@ def toFunLinear : A ⊗[R] Matrix n n R →ₗ[R] Matrix n n A :=
variable [DecidableEq n] [Fintype n]
+/- warning: matrix_equiv_tensor.to_fun_alg_hom -> MatrixEquivTensor.toFunAlgHom is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], AlgHom.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 _inst_2 _inst_3)
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], AlgHom.{u1, max (max u1 u3) u2, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 _inst_2 _inst_3)
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.to_fun_alg_hom MatrixEquivTensor.toFunAlgHomₓ'. -/
/-- The function `(A ⊗[R] matrix n n R) →ₐ[R] matrix n n A`, as an algebra homomorphism.
-/
def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
@@ -80,12 +100,15 @@ def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
Algebra.algebraMap_eq_smul_one])
#align matrix_equiv_tensor.to_fun_alg_hom MatrixEquivTensor.toFunAlgHom
+#print MatrixEquivTensor.toFunAlgHom_apply /-
@[simp]
theorem toFunAlgHom_apply (a : A) (m : Matrix n n R) :
toFunAlgHom R A n (a ⊗ₜ m) = a • m.map (algebraMap R A) := by
simp [to_fun_alg_hom, alg_hom_of_linear_map_tensor_product, to_fun_linear]
#align matrix_equiv_tensor.to_fun_alg_hom_apply MatrixEquivTensor.toFunAlgHom_apply
+-/
+#print MatrixEquivTensor.invFun /-
/-- (Implementation detail.)
The bare function `matrix n n A → A ⊗[R] matrix n n R`.
@@ -94,21 +117,46 @@ The bare function `matrix n n A → A ⊗[R] matrix n n R`.
def invFun (M : Matrix n n A) : A ⊗[R] Matrix n n R :=
∑ p : n × n, M p.1 p.2 ⊗ₜ stdBasisMatrix p.1 p.2 1
#align matrix_equiv_tensor.inv_fun MatrixEquivTensor.invFun
+-/
+/- warning: matrix_equiv_tensor.inv_fun_zero -> MatrixEquivTensor.invFun_zero is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (OfNat.ofNat.{max u3 u2} (Matrix.{u3, u3, u2} n n A) 0 (OfNat.mk.{max u3 u2} (Matrix.{u3, u3, u2} n n A) 0 (Zero.zero.{max u3 u2} (Matrix.{u3, u3, u2} n n A) (Matrix.hasZero.{u2, u3, u3} n n A (MulZeroClass.toHasZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))))) (OfNat.ofNat.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) 0 (OfNat.mk.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) 0 (Zero.zero.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MulZeroClass.toHasZero.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMulZeroClass.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n], Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (OfNat.ofNat.{max u2 u3} (Matrix.{u3, u3, u2} n n A) 0 (Zero.toOfNat0.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.zero.{u2, u3, u3} n n A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)))))) (OfNat.ofNat.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) 0 (Zero.toOfNat0.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toMonoidWithZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_zero MatrixEquivTensor.invFun_zeroₓ'. -/
@[simp]
theorem invFun_zero : invFun R A n 0 = 0 := by simp [inv_fun]
#align matrix_equiv_tensor.inv_fun_zero MatrixEquivTensor.invFun_zero
+/- warning: matrix_equiv_tensor.inv_fun_add -> MatrixEquivTensor.invFun_add is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u2} n n A) (N : Matrix.{u3, u3, u2} n n A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (HAdd.hAdd.{max u3 u2, max u3 u2, max u3 u2} (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHAdd.{max u3 u2} (Matrix.{u3, u3, u2} n n A) (Matrix.hasAdd.{u2, u3, u3} n n A (Distrib.toHasAdd.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) M N)) (HAdd.hAdd.{max u2 u3 u1, max u2 u3 u1, max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHAdd.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 N))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u2} n n A) (N : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (HAdd.hAdd.{max u2 u3, max u2 u3, max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHAdd.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.add.{u2, u3, u3} n n A (Distrib.toAdd.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) M N)) (HAdd.hAdd.{max (max u1 u2) u3, max (max u1 u2) u3, max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHAdd.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Distrib.toAdd.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 N))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_add MatrixEquivTensor.invFun_addₓ'. -/
@[simp]
theorem invFun_add (M N : Matrix n n A) : invFun R A n (M + N) = invFun R A n M + invFun R A n N :=
by simp [inv_fun, add_tmul, Finset.sum_add_distrib]
#align matrix_equiv_tensor.inv_fun_add MatrixEquivTensor.invFun_add
+/- warning: matrix_equiv_tensor.inv_fun_smul -> MatrixEquivTensor.invFun_smul is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (a : A) (M : Matrix.{u3, u3, u2} n n A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (SMul.smul.{u2, max u3 u2} A (Matrix.{u3, u3, u2} n n A) (Matrix.hasSmul.{u2, u3, u3, u2} n n A A (Mul.toSMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))) a M)) (HMul.hMul.{max u2 u3 u1, max u2 u3 u1, max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHMul.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Distrib.toHasMul.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toDistrib.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u2 u3 u1} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a (OfNat.ofNat.{max u3 u1} (Matrix.{u3, u3, u1} n n R) 1 (OfNat.mk.{max u3 u1} (Matrix.{u3, u3, u1} n n R) 1 (One.one.{max u3 u1} (Matrix.{u3, u3, u1} n n R) (Matrix.hasOne.{u1, u3} n R (fun (a : n) (b : n) => _inst_4 a b) (MulZeroClass.toHasZero.{u1} R (NonUnitalNonAssocSemiring.toMulZeroClass.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (a : A) (M : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (HSMul.hSMul.{u2, max u2 u3, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.{u3, u3, u2} n n A) (instHSMul.{u2, max u2 u3} A (Matrix.{u3, u3, u2} n n A) (Matrix.smul.{u2, u3, u3, u2} n n A A (SMulZeroClass.toSMul.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (SMulWithZero.toSMulZeroClass.{u2, u2} A A (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_2)) (MulZeroClass.toSMulWithZero.{u2} A (NonUnitalNonAssocSemiring.toMulZeroClass.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))))))) a M)) (HMul.hMul.{max u2 u1 u3, max (max u1 u2) u3, max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (instHMul.{max u2 u1 u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_5 (fun (a : n) (b : n) => _inst_4 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_5 (fun (a : n) (b : n) => _inst_4 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a (OfNat.ofNat.{max u1 u3} (Matrix.{u3, u3, u1} n n R) 1 (One.toOfNat1.{max u1 u3} (Matrix.{u3, u3, u1} n n R) (Matrix.one.{u1, u3} n R (fun (a : n) (b : n) => _inst_4 a b) (CommMonoidWithZero.toZero.{u1} R (CommSemiring.toCommMonoidWithZero.{u1} R _inst_1)) (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 M))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_smul MatrixEquivTensor.invFun_smulₓ'. -/
@[simp]
theorem invFun_smul (a : A) (M : Matrix n n A) : invFun R A n (a • M) = a ⊗ₜ 1 * invFun R A n M :=
by simp [inv_fun, Finset.mul_sum]
#align matrix_equiv_tensor.inv_fun_smul MatrixEquivTensor.invFun_smul
+/- warning: matrix_equiv_tensor.inv_fun_algebra_map -> MatrixEquivTensor.invFun_algebraMap is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (Matrix.map.{u1, u2, u3, u3} n n R A M (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} A 1 (OfNat.mk.{u2} A 1 (One.one.{u2} A (AddMonoidWithOne.toOne.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))))) M)
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : DecidableEq.{succ u3} n] [_inst_5 : Fintype.{u3} n] (M : Matrix.{u3, u3, u1} n n R), Eq.{max (max (succ u1) (succ u2)) (succ u3)} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MatrixEquivTensor.invFun.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n (fun (a : n) (b : n) => _inst_4 a b) _inst_5 (Matrix.map.{u1, u2, u3, u3} n n R A M (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3)))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} A 1 (One.toOfNat1.{u2} A (Semiring.toOne.{u2} A _inst_2))) M)
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor.inv_fun_algebra_map MatrixEquivTensor.invFun_algebraMapₓ'. -/
@[simp]
theorem invFun_algebraMap (M : Matrix n n R) : invFun R A n (M.map (algebraMap R A)) = 1 ⊗ₜ M :=
by
@@ -119,6 +167,7 @@ theorem invFun_algebraMap (M : Matrix n n R) : invFun R A n (M.map (algebraMap R
convert Finset.sum_product; simp
#align matrix_equiv_tensor.inv_fun_algebra_map MatrixEquivTensor.invFun_algebraMap
+#print MatrixEquivTensor.right_inv /-
theorem right_inv (M : Matrix n n A) : (toFunAlgHom R A n) (invFun R A n M) = M :=
by
simp only [inv_fun, AlgHom.map_sum, std_basis_matrix, apply_ite ⇑(algebraMap R A), smul_eq_mul,
@@ -126,7 +175,9 @@ theorem right_inv (M : Matrix n n A) : (toFunAlgHom R A n) (invFun R A n M) = M
Pi.smul_def]
convert Finset.sum_product; apply matrix_eq_sum_std_basis
#align matrix_equiv_tensor.right_inv MatrixEquivTensor.right_inv
+-/
+#print MatrixEquivTensor.left_inv /-
theorem left_inv (M : A ⊗[R] Matrix n n R) : invFun R A n (toFunAlgHom R A n M) = M :=
by
induction' M using TensorProduct.induction_on with a m x y hx hy
@@ -134,7 +185,9 @@ theorem left_inv (M : A ⊗[R] Matrix n n R) : invFun R A n (toFunAlgHom R A n M
· simp
· simp [AlgHom.map_sum, hx, hy]
#align matrix_equiv_tensor.left_inv MatrixEquivTensor.left_inv
+-/
+#print MatrixEquivTensor.equiv /-
/-- (Implementation detail)
The equivalence, ignoring the algebra structure, `(A ⊗[R] matrix n n R) ≃ matrix n n A`.
@@ -146,11 +199,18 @@ def equiv : A ⊗[R] Matrix n n R ≃ Matrix n n A
left_inv := left_inv R A n
right_inv := right_inv R A n
#align matrix_equiv_tensor.equiv MatrixEquivTensor.equiv
+-/
end matrixEquivTensor
variable [Fintype n] [DecidableEq n]
+/- warning: matrix_equiv_tensor -> matrixEquivTensor is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n], AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n], AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor matrixEquivTensorₓ'. -/
/-- The `R`-algebra isomorphism `matrix n n A ≃ₐ[R] (A ⊗[R] matrix n n R)`.
-/
def matrixEquivTensor : Matrix n n A ≃ₐ[R] A ⊗[R] Matrix n n R :=
@@ -159,12 +219,24 @@ def matrixEquivTensor : Matrix n n A ≃ₐ[R] A ⊗[R] Matrix n n R :=
open matrixEquivTensor
+/- warning: matrix_equiv_tensor_apply -> matrixEquivTensor_apply is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (M : Matrix.{u3, u3, u2} n n A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ (max u3 u2)) (succ (max u2 u3 u1)), max (succ (max u3 u2)) (succ (max u2 u3 u1))} (AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (fun (_x : AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) => (Matrix.{u3, u3, u2} n n A) -> (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AlgEquiv.hasCoeToFun.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) M) (Finset.sum.{max u2 u3 u1, u3} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Prod.{u3, u3} n n) (TensorProduct.addCommMonoid.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Finset.univ.{u3} (Prod.{u3, u3} n n) (Prod.fintype.{u3, u3} n n _inst_4 _inst_4)) (fun (p : Prod.{u3, u3} n n) => TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (M (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p)) (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))))))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (M : Matrix.{u3, u3, u2} n n A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) M) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) M) (Finset.sum.{max (max u1 u3) u2, u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Prod.{u3, u3} n n) (Algebra.TensorProduct.instAddCommMonoidTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Finset.univ.{u3} (Prod.{u3, u3} n n) (instFintypeProd.{u3, u3} n n _inst_4 _inst_4)) (fun (p : Prod.{u3, u3} n n) => TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (M (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p)) (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.fst.{u3, u3} n n p) (Prod.snd.{u3, u3} n n p) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))))))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply matrixEquivTensor_applyₓ'. -/
@[simp]
theorem matrixEquivTensor_apply (M : Matrix n n A) :
matrixEquivTensor R A n M = ∑ p : n × n, M p.1 p.2 ⊗ₜ stdBasisMatrix p.1 p.2 1 :=
rfl
#align matrix_equiv_tensor_apply matrixEquivTensor_apply
+/- warning: matrix_equiv_tensor_apply_std_basis -> matrixEquivTensor_apply_std_basis is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (i : n) (j : n) (x : A), Eq.{succ (max u2 u3 u1)} (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (coeFn.{max (succ (max u3 u2)) (succ (max u2 u3 u1)), max (succ (max u3 u2)) (succ (max u2 u3 u1))} (AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (fun (_x : AlgEquiv.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) => (Matrix.{u3, u3, u2} n n A) -> (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (AlgEquiv.hasCoeToFun.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) x (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) i j (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))))))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (i : n) (j : n) (x : A), Eq.{max (max (succ u1) (succ u2)) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (max (succ u1) (succ u2)) (succ u3)} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (fun (_x : Matrix.{u3, u3, u2} n n A) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u3, u3, u2} n n A) => TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u2 u3, max (max u1 u2) u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max u2 u3, max (max u1 u2) u3} (AlgEquiv.{u1, max u2 u3, max (max u1 u3) u2} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))) R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.stdBasisMatrix.{u3, u3, u2} n n A (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) _inst_2 i j x)) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) x (Matrix.stdBasisMatrix.{u3, u3, u1} n n R (fun (a : n) (b : n) => _inst_5 a b) (fun (a : n) (b : n) => _inst_5 a b) (CommSemiring.toSemiring.{u1} R _inst_1) i j (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basisₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
matrixEquivTensor R A n (stdBasisMatrix i j x) = x ⊗ₜ stdBasisMatrix i j 1 :=
@@ -173,6 +245,12 @@ theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
simp [ite_tmul, t, std_basis_matrix]
#align matrix_equiv_tensor_apply_std_basis matrixEquivTensor_apply_std_basis
+/- warning: matrix_equiv_tensor_apply_symm -> matrixEquivTensor_apply_symm is a dubious translation:
+lean 3 declaration is
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{succ (max u3 u2)} (Matrix.{u3, u3, u2} n n A) (coeFn.{max (succ (max u2 u3 u1)) (succ (max u3 u2)), max (succ (max u2 u3 u1)) (succ (max u3 u2))} (AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (fun (_x : AlgEquiv.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) => (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) -> (Matrix.{u3, u3, u2} n n A)) (AlgEquiv.hasCoeToFun.{u1, max u2 u3 u1, max u3 u2} R (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3)) (AlgEquiv.symm.{u1, max u3 u2, max u2 u3 u1} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Algebra.TensorProduct.TensorProduct.semiring.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.algebra.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.TensorProduct.algebra.{u1, u2, max u3 u1} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b)) (Matrix.algebra.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_5 a b) a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u3 u1} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) a (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (fun (_x : RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) => R -> A) (RingHom.hasCoeToFun.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
+but is expected to have type
+ forall (R : Type.{u1}) [_inst_1 : CommSemiring.{u1} R] (A : Type.{u2}) [_inst_2 : Semiring.{u2} A] [_inst_3 : Algebra.{u1, u2} R A _inst_1 _inst_2] (n : Type.{u3}) [_inst_4 : Fintype.{u3} n] [_inst_5 : DecidableEq.{succ u3} n] (a : A) (M : Matrix.{u3, u3, u1} n n R), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3)} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (fun (_x : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) => Matrix.{u3, u3, u2} n n A) _x) (SMulHomClass.toFunLike.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (SMulZeroClass.toSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toZero.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (AddMonoid.toAddZeroClass.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)))) (Module.toDistribMulAction.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max (max u1 u2) u3} (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1)))))) (Algebra.toModule.{u1, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Semiring.toNonAssocSemiring.{max u2 u3} (Matrix.{u3, u3, u2} n n A) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b))))) (Algebra.toModule.{u1, max u2 u3} R (Matrix.{u3, u3, u2} n n A) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max (max u1 u2) u3, max u2 u3, max (max u1 u2) u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) (AlgEquivClass.toAlgHomClass.{max (max u1 u2) u3, u1, max (max u1 u2) u3, max u2 u3} (AlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3)) R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max (max u1 u2) u3, max u2 u3} R (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Matrix.{u3, u3, u2} n n A) _inst_1 (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3))))))) (AlgEquiv.symm.{u1, max u2 u3, max (max u1 u2) u3} R (Matrix.{u3, u3, u2} n n A) (TensorProduct.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) _inst_1 (Matrix.semiring.{u2, u3} n A _inst_2 _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Algebra.TensorProduct.instSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u2, u3, u1} n R A _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 _inst_2 _inst_3) (Algebra.TensorProduct.instAlgebraTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModuleInstSemiringTensorProductToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToAddCommMonoidToNonUnitalNonAssocSemiringToNonAssocSemiringToModuleToModule.{u1, u2, max u1 u3} R _inst_1 A _inst_2 _inst_3 (Matrix.{u3, u3, u1} n n R) (Matrix.semiring.{u1, u3} n R (CommSemiring.toSemiring.{u1} R _inst_1) _inst_4 (fun (a : n) (b : n) => _inst_5 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u3, u1} n R R _inst_4 (fun (a : n) (b : n) => _inst_5 a b) _inst_1 (CommSemiring.toSemiring.{u1} R _inst_1) (Algebra.id.{u1} R _inst_1))) (matrixEquivTensor.{u1, u2, u3} R _inst_1 A _inst_2 _inst_3 n _inst_4 (fun (a : n) (b : n) => _inst_5 a b))) (TensorProduct.tmul.{u1, u2, max u1 u3} R _inst_1 A (Matrix.{u3, u3, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (Matrix.addCommMonoid.{u1, u3, u3} n n R (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))))) (Algebra.toModule.{u1, u2} R A _inst_1 _inst_2 _inst_3) (Matrix.module.{u1, u3, u3, u1} n n R R (CommSemiring.toSemiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (Semiring.toModule.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) a M)) (Matrix.map.{u1, u2, u3, u3} n n R A M (fun (x : R) => HMul.hMul.{u2, u2, u2} A ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) x) A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)))) a (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => A) _x) (MulHomClass.toFunLike.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toMul.{u2} A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, u1, u2} (RingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2)) R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2) (RingHom.instRingHomClassRingHom.{u1, u2} R A (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} A _inst_2))))) (algebraMap.{u1, u2} R A _inst_1 _inst_2 _inst_3) x)))
+Case conversion may be inaccurate. Consider using '#align matrix_equiv_tensor_apply_symm matrixEquivTensor_apply_symmₓ'. -/
@[simp]
theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
(matrixEquivTensor R A n).symm (a ⊗ₜ M) = M.map fun x => a * algebraMap R A x :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -27,11 +27,8 @@ open Algebra.TensorProduct
open Matrix
variable {R : Type u} [CommSemiring R]
-
variable {A : Type v} [Semiring A] [Algebra R A]
-
variable {n : Type w}
-
variable (R A n)
namespace MatrixEquivTensor
Move:
Mathlib/Algebra/Module/DirectLimitAndTensorProduct.lean
to
LinearAlgebra/TensorProduct/DirectLimit.lean
Mathlib/LinearAlgebra/TensorProduct
to Mathlib/LinearAlgebra.TensorProduct.Basic.lean
Mathlib/RingTheory/TensorProduct
to Mathlib/RingTheory/TensorProduct/Basic.lean
.This follows suggestions 1, 2, 3 of
Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr>
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Eric Wieser
-/
import Mathlib.Data.Matrix.Basis
-import Mathlib.RingTheory.TensorProduct
+import Mathlib.RingTheory.TensorProduct.Basic
#align_import ring_theory.matrix_algebra from "leanprover-community/mathlib"@"6c351a8fb9b06e5a542fdf427bfb9f46724f9453"
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -162,7 +162,7 @@ theorem matrixEquivTensor_apply (M : Matrix n n A) :
rfl
#align matrix_equiv_tensor_apply matrixEquivTensor_apply
--- Porting note : short circuiting simplifier from simplifying left hand side
+-- Porting note: short circuiting simplifier from simplifying left hand side
@[simp (high)]
theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
matrixEquivTensor R A n (stdBasisMatrix i j x) = x ⊗ₜ stdBasisMatrix i j 1 := by
@@ -12,6 +12,7 @@ import Mathlib.RingTheory.TensorProduct
We show `Matrix n n A ≃ₐ[R] (A ⊗[R] Matrix n n R)`.
-/
+suppress_compilation
universe u v w
Rather than showing agreement on all the scalars in algHomOfLinearMapTensorProduct
, it suffices to show agreement on 1
.
This also replaces a few downstream proofs with rfl
in order to make them eligible for dsimp
.
These results were always true by rfl
, but it was easier to make this change than fix the old proofs.
@@ -71,16 +71,13 @@ def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
simp_rw [Matrix.mul_apply, Matrix.smul_apply, Matrix.map_apply, smul_eq_mul, Finset.mul_sum,
_root_.mul_assoc, Algebra.left_comm])
(by
- intros
simp_rw [toFunLinear, lift.tmul, toFunBilinear_apply,
- Matrix.map_one (algebraMap R A) (map_zero _) (map_one _), algebraMap_smul,
- Algebra.algebraMap_eq_smul_one])
+ Matrix.map_one (algebraMap R A) (map_zero _) (map_one _), one_smul])
#align matrix_equiv_tensor.to_fun_alg_hom MatrixEquivTensor.toFunAlgHom
@[simp]
theorem toFunAlgHom_apply (a : A) (m : Matrix n n R) :
- toFunAlgHom R A n (a ⊗ₜ m) = a • m.map (algebraMap R A) := by
- simp [toFunAlgHom, algHomOfLinearMapTensorProduct, toFunLinear]
+ toFunAlgHom R A n (a ⊗ₜ m) = a • m.map (algebraMap R A) := rfl
#align matrix_equiv_tensor.to_fun_alg_hom_apply MatrixEquivTensor.toFunAlgHom_apply
/-- (Implementation detail.)
@@ -174,8 +171,6 @@ theorem matrixEquivTensor_apply_std_basis (i j : n) (x : A) :
@[simp]
theorem matrixEquivTensor_apply_symm (a : A) (M : Matrix n n R) :
- (matrixEquivTensor R A n).symm (a ⊗ₜ M) = M.map fun x => a * algebraMap R A x := by
- simp [matrixEquivTensor, MatrixEquivTensor.toFunAlgHom, algHomOfLinearMapTensorProduct,
- MatrixEquivTensor.toFunLinear]
+ (matrixEquivTensor R A n).symm (a ⊗ₜ M) = M.map fun x => a * algebraMap R A x :=
rfl
#align matrix_equiv_tensor_apply_symm matrixEquivTensor_apply_symm
This removes redundant field values of the form add := add
for smaller terms and less unfolding during unification.
A list of all files containing a structure instance of the form { a1, ... with x1 := val, ... }
where some xi
is a field of some aj
was generated by modifying the structure instance elaboration algorithm to print such overlaps to stdout in a custom toolchain.
Using that toolchain, I went through each file on the list and attempted to remove algebraic fields that overlapped and were redundant, eg add := add
and not toFun
(though some other ones did creep in). If things broke (which was the case in a couple of cases), I did not push further and reverted.
It is possible that pushing harder and trying to remove all redundant overlaps will yield further improvements.
@@ -80,7 +80,7 @@ def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
@[simp]
theorem toFunAlgHom_apply (a : A) (m : Matrix n n R) :
toFunAlgHom R A n (a ⊗ₜ m) = a • m.map (algebraMap R A) := by
- simp [toFunAlgHom, algHomOfLinearMapTensorProduct, toFunLinear]; rfl
+ simp [toFunAlgHom, algHomOfLinearMapTensorProduct, toFunLinear]
#align matrix_equiv_tensor.to_fun_alg_hom_apply MatrixEquivTensor.toFunAlgHom_apply
/-- (Implementation detail.)
⬝
notation in favor of HMul
(#6487)
The main difficulty here is that *
has a slightly difference precedence to ⬝
. notably around smul
and neg
.
The other annoyance is that ↑U ⬝ A ⬝ ↑U⁻¹ : Matrix m m 𝔸
now has to be written U.val * A * (U⁻¹).val
in order to typecheck.
A downside of this change to consider: if you have a goal of A * (B * C) = (A * B) * C
, mul_assoc
now gives the illusion of matching, when in fact Matrix.mul_assoc
is needed. Previously the distinct symbol made it easy to avoid this mistake.
On the flipside, there is now no need to rewrite by Matrix.mul_eq_mul
all the time (indeed, the lemma is now removed).
@@ -65,7 +65,7 @@ def toFunAlgHom : A ⊗[R] Matrix n n R →ₐ[R] Matrix n n A :=
algHomOfLinearMapTensorProduct (toFunLinear R A n)
(by
intros
- simp_rw [toFunLinear, lift.tmul, toFunBilinear_apply, mul_eq_mul, Matrix.map_mul]
+ simp_rw [toFunLinear, lift.tmul, toFunBilinear_apply, Matrix.map_mul]
ext
dsimp
simp_rw [Matrix.mul_apply, Matrix.smul_apply, Matrix.map_apply, smul_eq_mul, Finset.mul_sum,
This also makes some proofs more verbose to make it clearer which goal is which.
@@ -127,10 +127,11 @@ theorem right_inv (M : Matrix n n A) : (toFunAlgHom R A n) (invFun R A n M) = M
#align matrix_equiv_tensor.right_inv MatrixEquivTensor.right_inv
theorem left_inv (M : A ⊗[R] Matrix n n R) : invFun R A n (toFunAlgHom R A n M) = M := by
- induction' M using TensorProduct.induction_on with a m x y hx hy
- · simp
- · simp
- · rw [map_add]
+ induction M using TensorProduct.induction_on with
+ | zero => simp
+ | tmul a m => simp
+ | add x y hx hy =>
+ rw [map_add]
conv_rhs => rw [← hx, ← hy, ← invFun_add]
#align matrix_equiv_tensor.left_inv MatrixEquivTensor.left_inv
This generalizes from Algebra.lsmul R M : A →ₐ[R] Module.End R M
to Algebra.lsmul R S M : A →ₐ[R] Module.End S M
.
This generalization was previously not possible because Module.End S M
was not an R
-algebra.
Notably this now allows things like Algebra.lsmul R A A : Aᵐᵒᵖ →ₐ[R] Module.End A A
(right multiplication).
This doesn't bother attempting to generalize uses in downstream files, as most of them probably do not need the generality.
Instead, we just replace Algebra.lsmul R
with Algebra.lsmul R R
.
@@ -40,7 +40,7 @@ The function underlying `(A ⊗[R] Matrix n n R) →ₐ[R] Matrix n n A`,
as an `R`-bilinear map.
-/
def toFunBilinear : A →ₗ[R] Matrix n n R →ₗ[R] Matrix n n A :=
- (Algebra.lsmul R (Matrix n n A)).toLinearMap.compl₂ (Algebra.linearMap R A).mapMatrix
+ (Algebra.lsmul R R (Matrix n n A)).toLinearMap.compl₂ (Algebra.linearMap R A).mapMatrix
#align matrix_equiv_tensor.to_fun_bilinear MatrixEquivTensor.toFunBilinear
@[simp]
@@ -2,15 +2,12 @@
Copyright (c) 2020 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Eric Wieser
-
-! This file was ported from Lean 3 source module ring_theory.matrix_algebra
-! leanprover-community/mathlib commit 6c351a8fb9b06e5a542fdf427bfb9f46724f9453
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Matrix.Basis
import Mathlib.RingTheory.TensorProduct
+#align_import ring_theory.matrix_algebra from "leanprover-community/mathlib"@"6c351a8fb9b06e5a542fdf427bfb9f46724f9453"
+
/-!
We show `Matrix n n A ≃ₐ[R] (A ⊗[R] Matrix n n R)`.
-/
The unported dependencies are