linear_algebra.matrix.charpoly.coeff
⟷
Mathlib.LinearAlgebra.Matrix.Charpoly.Coeff
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2020 Aaron Anderson, Jalex Stark. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson, Jalex Stark
-/
-import Data.Polynomial.Expand
+import Algebra.Polynomial.Expand
import LinearAlgebra.Matrix.Charpoly.Basic
#align_import linear_algebra.matrix.charpoly.coeff from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -72,7 +72,7 @@ theorem charpoly_sub_diagonal_degree_lt :
rw [charpoly, det_apply', ← insert_erase (mem_univ (Equiv.refl n)),
sum_insert (not_mem_erase (Equiv.refl n) univ), add_comm]
simp only [Matrix.charmatrix_apply_eq, one_mul, Equiv.Perm.sign_refl, id.def, Int.cast_one,
- Units.val_one, add_sub_cancel, Equiv.coe_refl]
+ Units.val_one, add_sub_cancel_right, Equiv.coe_refl]
rw [← mem_degree_lt]; apply Submodule.sum_mem (degree_lt R (Fintype.card n - 1))
intro c hc; rw [← C_eq_int_cast, C_mul']
apply Submodule.smul_mem (degree_lt R (Fintype.card n - 1)) ↑↑(Equiv.Perm.sign c)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -95,7 +95,7 @@ theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤
#print Matrix.det_of_card_zero /-
theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
- rw [Fintype.card_eq_zero_iff] at h ; suffices M = 1 by simp [this]; ext i; exact h.elim i
+ rw [Fintype.card_eq_zero_iff] at h; suffices M = 1 by simp [this]; ext i; exact h.elim i
#align matrix.det_of_card_zero Matrix.det_of_card_zero
-/
@@ -131,8 +131,8 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
by_cases Fintype.card n = 0; · rw [charpoly, det_of_card_zero h]; apply monic_one
have mon : (∏ i : n, (X - C (M i i))).Monic := by
apply monic_prod_of_monic univ fun i : n => X - C (M i i); simp [monic_X_sub_C]
- rw [← sub_add_cancel (∏ i : n, (X - C (M i i))) M.charpoly] at mon
- rw [monic] at *; rw [leading_coeff_add_of_degree_lt] at mon ; rw [← mon]
+ rw [← sub_add_cancel (∏ i : n, (X - C (M i i))) M.charpoly] at mon
+ rw [monic] at *; rw [leading_coeff_add_of_degree_lt] at mon; rw [← mon]
rw [charpoly_degree_eq_dim]; rw [← neg_sub]; rw [degree_neg]
apply lt_trans (charpoly_sub_diagonal_degree_lt M); rw [WithBot.coe_lt_coe]
rw [← Nat.pred_eq_sub_one]; apply Nat.pred_lt; apply h
@@ -165,7 +165,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
simp only [Polynomial.sum, matPolyEquiv_coeff_apply, mul_comm]
apply (Finset.sum_subset (support_subset_support_matPolyEquiv _ _ _) _).symm
intro n hn h'n
- rw [not_mem_support_iff] at h'n
+ rw [not_mem_support_iff] at h'n
simp only [h'n, MulZeroClass.zero_mul]
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -47,17 +47,18 @@ open Finset
variable {M : Matrix n n R}
-#print charmatrix_apply_natDegree /-
-theorem charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
- (charmatrix M i j).natDegree = ite (i = j) 1 0 := by
+#print Matrix.charmatrix_apply_natDegree /-
+theorem Matrix.charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
+ (Matrix.charmatrix M i j).natDegree = ite (i = j) 1 0 := by
by_cases i = j <;> simp [h, ← degree_eq_iff_nat_degree_eq_of_pos (Nat.succ_pos 0)]
-#align charmatrix_apply_nat_degree charmatrix_apply_natDegree
+#align charmatrix_apply_nat_degree Matrix.charmatrix_apply_natDegree
-/
-#print charmatrix_apply_natDegree_le /-
-theorem charmatrix_apply_natDegree_le (i j : n) : (charmatrix M i j).natDegree ≤ ite (i = j) 1 0 :=
- by split_ifs <;> simp [h, nat_degree_X_sub_C_le]
-#align charmatrix_apply_nat_degree_le charmatrix_apply_natDegree_le
+#print Matrix.charmatrix_apply_natDegree_le /-
+theorem Matrix.charmatrix_apply_natDegree_le (i j : n) :
+ (Matrix.charmatrix M i j).natDegree ≤ ite (i = j) 1 0 := by
+ split_ifs <;> simp [h, nat_degree_X_sub_C_le]
+#align charmatrix_apply_nat_degree_le Matrix.charmatrix_apply_natDegree_le
-/
namespace Matrix
@@ -70,16 +71,16 @@ theorem charpoly_sub_diagonal_degree_lt :
by
rw [charpoly, det_apply', ← insert_erase (mem_univ (Equiv.refl n)),
sum_insert (not_mem_erase (Equiv.refl n) univ), add_comm]
- simp only [charmatrix_apply_eq, one_mul, Equiv.Perm.sign_refl, id.def, Int.cast_one,
+ simp only [Matrix.charmatrix_apply_eq, one_mul, Equiv.Perm.sign_refl, id.def, Int.cast_one,
Units.val_one, add_sub_cancel, Equiv.coe_refl]
rw [← mem_degree_lt]; apply Submodule.sum_mem (degree_lt R (Fintype.card n - 1))
intro c hc; rw [← C_eq_int_cast, C_mul']
apply Submodule.smul_mem (degree_lt R (Fintype.card n - 1)) ↑↑(Equiv.Perm.sign c)
rw [mem_degree_lt]; apply lt_of_le_of_lt degree_le_nat_degree _; rw [WithBot.coe_lt_coe]
apply lt_of_le_of_lt _ (Equiv.Perm.fixed_point_card_lt_of_ne_one (ne_of_mem_erase hc))
- apply le_trans (Polynomial.natDegree_prod_le univ fun i : n => charmatrix M (c i) i) _
+ apply le_trans (Polynomial.natDegree_prod_le univ fun i : n => Matrix.charmatrix M (c i) i) _
rw [card_eq_sum_ones]; rw [sum_filter]; apply sum_le_sum
- intros; apply charmatrix_apply_natDegree_le
+ intros; apply Matrix.charmatrix_apply_natDegree_le
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
-/
@@ -182,7 +183,7 @@ theorem eval_det (M : Matrix n n R[X]) (r : R) :
theorem det_eq_sign_charpoly_coeff (M : Matrix n n R) :
M.det = (-1) ^ Fintype.card n * M.charpoly.coeff 0 :=
by
- rw [coeff_zero_eq_eval_zero, charpoly, eval_det, matPolyEquiv_charmatrix, ← det_smul]
+ rw [coeff_zero_eq_eval_zero, charpoly, eval_det, Matrix.matPolyEquiv_charmatrix, ← det_smul]
simp
#align matrix.det_eq_sign_charpoly_coeff Matrix.det_eq_sign_charpoly_coeff
-/
@@ -191,23 +192,23 @@ end Matrix
variable {p : ℕ} [Fact p.Prime]
-#print matPolyEquiv_eq_x_pow_sub_c /-
-theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
- matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
+#print matPolyEquiv_eq_X_pow_sub_C /-
+theorem matPolyEquiv_eq_X_pow_sub_C {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
+ matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (Matrix.charmatrix (M ^ k))) =
X ^ k - C (M ^ k) :=
by
ext m
rw [coeff_sub, coeff_C, matPolyEquiv_coeff_apply, RingHom.mapMatrix_apply, Matrix.map_apply,
AlgHom.coe_toRingHom, DMatrix.sub_apply, coeff_X_pow]
by_cases hij : i = j
- · rw [hij, charmatrix_apply_eq, AlgHom.map_sub, expand_C, expand_X, coeff_sub, coeff_X_pow,
+ · rw [hij, Matrix.charmatrix_apply_eq, AlgHom.map_sub, expand_C, expand_X, coeff_sub, coeff_X_pow,
coeff_C]
split_ifs with mp m0 <;> simp only [Matrix.one_apply_eq, DMatrix.zero_apply]
- · rw [charmatrix_apply_ne _ _ _ hij, AlgHom.map_neg, expand_C, coeff_neg, coeff_C]
+ · rw [Matrix.charmatrix_apply_ne _ _ _ hij, AlgHom.map_neg, expand_C, coeff_neg, coeff_C]
split_ifs with m0 mp <;>
simp only [hij, zero_sub, DMatrix.zero_apply, sub_zero, neg_zero, Matrix.one_apply_ne, Ne.def,
not_false_iff]
-#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_x_pow_sub_c
+#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_X_pow_sub_C
-/
namespace Matrix
@@ -234,8 +235,8 @@ end Matrix
section Ideal
-#print coeff_charpoly_mem_ideal_pow /-
-theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k : ℕ) :
+#print Matrix.coeff_charpoly_mem_ideal_pow /-
+theorem Matrix.coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k : ℕ) :
M.charpoly.coeff k ∈ I ^ (Fintype.card n - k) :=
by
delta charpoly
@@ -247,12 +248,12 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
rw [← this]
apply coeff_prod_mem_ideal_pow_tsub
rintro i - (_ | k)
- · rw [tsub_zero, pow_one, charmatrix_apply, coeff_sub, coeff_X_mul_zero, coeff_C_zero, zero_sub,
- neg_mem_iff]
+ · rw [tsub_zero, pow_one, Matrix.charmatrix_apply, coeff_sub, coeff_X_mul_zero, coeff_C_zero,
+ zero_sub, neg_mem_iff]
exact h (c i) i
· rw [Nat.succ_eq_one_add, tsub_self_add, pow_zero, Ideal.one_eq_top]
exact Submodule.mem_top
-#align coeff_charpoly_mem_ideal_pow coeff_charpoly_mem_ideal_pow
+#align coeff_charpoly_mem_ideal_pow Matrix.coeff_charpoly_mem_ideal_pow
-/
end Ideal
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 Aaron Anderson, Jalex Stark. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson, Jalex Stark
-/
-import Mathbin.Data.Polynomial.Expand
-import Mathbin.LinearAlgebra.Matrix.Charpoly.Basic
+import Data.Polynomial.Expand
+import LinearAlgebra.Matrix.Charpoly.Basic
#align_import linear_algebra.matrix.charpoly.coeff from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 Aaron Anderson, Jalex Stark. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson, Jalex Stark
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.charpoly.coeff
-! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Data.Polynomial.Expand
import Mathbin.LinearAlgebra.Matrix.Charpoly.Basic
+#align_import linear_algebra.matrix.charpoly.coeff from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
+
/-!
# Characteristic polynomials
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -67,6 +67,7 @@ namespace Matrix
variable (M)
+#print Matrix.charpoly_sub_diagonal_degree_lt /-
theorem charpoly_sub_diagonal_degree_lt :
(M.charpoly - ∏ i : n, (X - C (M i i))).degree < ↑(Fintype.card n - 1) :=
by
@@ -83,17 +84,22 @@ theorem charpoly_sub_diagonal_degree_lt :
rw [card_eq_sum_ones]; rw [sum_filter]; apply sum_le_sum
intros; apply charmatrix_apply_natDegree_le
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
+-/
+#print Matrix.charpoly_coeff_eq_prod_coeff_of_le /-
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
M.charpoly.coeff k = (∏ i : n, (X - C (M i i))).coeff k :=
by
apply eq_of_sub_eq_zero; rw [← coeff_sub]; apply Polynomial.coeff_eq_zero_of_degree_lt
apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) _; rw [WithBot.coe_le_coe]; apply h
#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_le
+-/
+#print Matrix.det_of_card_zero /-
theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
rw [Fintype.card_eq_zero_iff] at h ; suffices M = 1 by simp [this]; ext i; exact h.elim i
#align matrix.det_of_card_zero Matrix.det_of_card_zero
+-/
#print Matrix.charpoly_degree_eq_dim /-
theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
@@ -135,6 +141,7 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
#align matrix.charpoly_monic Matrix.charpoly_monic
-/
+#print Matrix.trace_eq_neg_charpoly_coeff /-
theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
trace M = -M.charpoly.coeff (Fintype.card n - 1) :=
by
@@ -143,7 +150,9 @@ theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
neg_neg, trace]
rfl
#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeff
+-/
+#print Matrix.matPolyEquiv_eval /-
-- I feel like this should use polynomial.alg_hom_eval₂_algebra_map
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
(matPolyEquiv M).eval ((scalar n) r) i j = (M i j).eval r :=
@@ -161,25 +170,31 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
rw [not_mem_support_iff] at h'n
simp only [h'n, MulZeroClass.zero_mul]
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
+-/
+#print Matrix.eval_det /-
theorem eval_det (M : Matrix n n R[X]) (r : R) :
Polynomial.eval r M.det = (Polynomial.eval (scalar n r) (matPolyEquiv M)).det :=
by
rw [Polynomial.eval, ← coe_eval₂_ring_hom, RingHom.map_det]
apply congr_arg det; ext; symm; convert mat_poly_equiv_eval _ _ _ _
#align matrix.eval_det Matrix.eval_det
+-/
+#print Matrix.det_eq_sign_charpoly_coeff /-
theorem det_eq_sign_charpoly_coeff (M : Matrix n n R) :
M.det = (-1) ^ Fintype.card n * M.charpoly.coeff 0 :=
by
rw [coeff_zero_eq_eval_zero, charpoly, eval_det, matPolyEquiv_charmatrix, ← det_smul]
simp
#align matrix.det_eq_sign_charpoly_coeff Matrix.det_eq_sign_charpoly_coeff
+-/
end Matrix
variable {p : ℕ} [Fact p.Prime]
+#print matPolyEquiv_eq_x_pow_sub_c /-
theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
X ^ k - C (M ^ k) :=
@@ -196,22 +211,27 @@ theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix
simp only [hij, zero_sub, DMatrix.zero_apply, sub_zero, neg_zero, Matrix.one_apply_ne, Ne.def,
not_false_iff]
#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_x_pow_sub_c
+-/
namespace Matrix
+#print Matrix.aeval_eq_aeval_mod_charpoly /-
/-- Any matrix polynomial `p` is equivalent under evaluation to `p %ₘ M.charpoly`; that is, `p`
is equivalent to a polynomial with degree less than the dimension of the matrix. -/
theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
aeval M p = aeval M (p %ₘ M.charpoly) :=
(aeval_modByMonic_eq_self_of_root M.charpoly_monic M.aeval_self_charpoly).symm
#align matrix.aeval_eq_aeval_mod_charpoly Matrix.aeval_eq_aeval_mod_charpoly
+-/
+#print Matrix.pow_eq_aeval_mod_charpoly /-
/-- Any matrix power can be computed as the sum of matrix powers less than `fintype.card n`.
TODO: add the statement for negative powers phrased with `zpow`. -/
theorem pow_eq_aeval_mod_charpoly (M : Matrix n n R) (k : ℕ) :
M ^ k = aeval M (X ^ k %ₘ M.charpoly) := by rw [← aeval_eq_aeval_mod_charpoly, map_pow, aeval_X]
#align matrix.pow_eq_aeval_mod_charpoly Matrix.pow_eq_aeval_mod_charpoly
+-/
end Matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -68,7 +68,7 @@ namespace Matrix
variable (M)
theorem charpoly_sub_diagonal_degree_lt :
- (M.charpoly - ∏ i : n, X - C (M i i)).degree < ↑(Fintype.card n - 1) :=
+ (M.charpoly - ∏ i : n, (X - C (M i i))).degree < ↑(Fintype.card n - 1) :=
by
rw [charpoly, det_apply', ← insert_erase (mem_univ (Equiv.refl n)),
sum_insert (not_mem_erase (Equiv.refl n) univ), add_comm]
@@ -85,7 +85,7 @@ theorem charpoly_sub_diagonal_degree_lt :
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
- M.charpoly.coeff k = (∏ i : n, X - C (M i i)).coeff k :=
+ M.charpoly.coeff k = (∏ i : n, (X - C (M i i))).coeff k :=
by
apply eq_of_sub_eq_zero; rw [← coeff_sub]; apply Polynomial.coeff_eq_zero_of_degree_lt
apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) _; rw [WithBot.coe_le_coe]; apply h
@@ -101,8 +101,8 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
by
by_cases Fintype.card n = 0
· rw [h]; unfold charpoly; rw [det_of_card_zero]; · simp; · assumption
- rw [← sub_add_cancel M.charpoly (∏ i : n, X - C (M i i))]
- have h1 : (∏ i : n, X - C (M i i)).degree = Fintype.card n :=
+ rw [← sub_add_cancel M.charpoly (∏ i : n, (X - C (M i i)))]
+ have h1 : (∏ i : n, (X - C (M i i))).degree = Fintype.card n :=
by
rw [degree_eq_iff_nat_degree_eq_of_pos]; swap; apply Nat.pos_of_ne_zero h
rw [nat_degree_prod']; simp_rw [nat_degree_X_sub_C]; unfold Fintype.card; simp
@@ -125,9 +125,9 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
by
nontriviality
by_cases Fintype.card n = 0; · rw [charpoly, det_of_card_zero h]; apply monic_one
- have mon : (∏ i : n, X - C (M i i)).Monic := by
+ have mon : (∏ i : n, (X - C (M i i))).Monic := by
apply monic_prod_of_monic univ fun i : n => X - C (M i i); simp [monic_X_sub_C]
- rw [← sub_add_cancel (∏ i : n, X - C (M i i)) M.charpoly] at mon
+ rw [← sub_add_cancel (∏ i : n, (X - C (M i i))) M.charpoly] at mon
rw [monic] at *; rw [leading_coeff_add_of_degree_lt] at mon ; rw [← mon]
rw [charpoly_degree_eq_dim]; rw [← neg_sub]; rw [degree_neg]
apply lt_trans (charpoly_sub_diagonal_degree_lt M); rw [WithBot.coe_lt_coe]
@@ -226,7 +226,7 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
apply sum_mem
rintro c -
rw [coeff_smul, Submodule.smul_mem_iff']
- have : (∑ x : n, 1) = Fintype.card n := by rw [Finset.sum_const, card_univ, smul_eq_mul, mul_one]
+ have : ∑ x : n, 1 = Fintype.card n := by rw [Finset.sum_const, card_univ, smul_eq_mul, mul_one]
rw [← this]
apply coeff_prod_mem_ideal_pow_tsub
rintro i - (_ | k)
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -81,7 +81,7 @@ theorem charpoly_sub_diagonal_degree_lt :
apply lt_of_le_of_lt _ (Equiv.Perm.fixed_point_card_lt_of_ne_one (ne_of_mem_erase hc))
apply le_trans (Polynomial.natDegree_prod_le univ fun i : n => charmatrix M (c i) i) _
rw [card_eq_sum_ones]; rw [sum_filter]; apply sum_le_sum
- intros ; apply charmatrix_apply_natDegree_le
+ intros; apply charmatrix_apply_natDegree_le
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
@@ -92,7 +92,7 @@ theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤
#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_le
theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
- rw [Fintype.card_eq_zero_iff] at h; suffices M = 1 by simp [this]; ext i; exact h.elim i
+ rw [Fintype.card_eq_zero_iff] at h ; suffices M = 1 by simp [this]; ext i; exact h.elim i
#align matrix.det_of_card_zero Matrix.det_of_card_zero
#print Matrix.charpoly_degree_eq_dim /-
@@ -127,8 +127,8 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
by_cases Fintype.card n = 0; · rw [charpoly, det_of_card_zero h]; apply monic_one
have mon : (∏ i : n, X - C (M i i)).Monic := by
apply monic_prod_of_monic univ fun i : n => X - C (M i i); simp [monic_X_sub_C]
- rw [← sub_add_cancel (∏ i : n, X - C (M i i)) M.charpoly] at mon
- rw [monic] at *; rw [leading_coeff_add_of_degree_lt] at mon; rw [← mon]
+ rw [← sub_add_cancel (∏ i : n, X - C (M i i)) M.charpoly] at mon
+ rw [monic] at *; rw [leading_coeff_add_of_degree_lt] at mon ; rw [← mon]
rw [charpoly_degree_eq_dim]; rw [← neg_sub]; rw [degree_neg]
apply lt_trans (charpoly_sub_diagonal_degree_lt M); rw [WithBot.coe_lt_coe]
rw [← Nat.pred_eq_sub_one]; apply Nat.pred_lt; apply h
@@ -158,7 +158,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
simp only [Polynomial.sum, matPolyEquiv_coeff_apply, mul_comm]
apply (Finset.sum_subset (support_subset_support_matPolyEquiv _ _ _) _).symm
intro n hn h'n
- rw [not_mem_support_iff] at h'n
+ rw [not_mem_support_iff] at h'n
simp only [h'n, MulZeroClass.zero_mul]
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -199,14 +199,12 @@ theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix
namespace Matrix
-#print Matrix.aeval_eq_aeval_mod_charpoly /-
/-- Any matrix polynomial `p` is equivalent under evaluation to `p %ₘ M.charpoly`; that is, `p`
is equivalent to a polynomial with degree less than the dimension of the matrix. -/
theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
aeval M p = aeval M (p %ₘ M.charpoly) :=
(aeval_modByMonic_eq_self_of_root M.charpoly_monic M.aeval_self_charpoly).symm
#align matrix.aeval_eq_aeval_mod_charpoly Matrix.aeval_eq_aeval_mod_charpoly
--/
/-- Any matrix power can be computed as the sum of matrix powers less than `fintype.card n`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -38,7 +38,7 @@ universe u v w z
open Polynomial Matrix
-open BigOperators Polynomial
+open scoped BigOperators Polynomial
variable {R : Type u} [CommRing R]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -67,9 +67,6 @@ namespace Matrix
variable (M)
-/- warning: matrix.charpoly_sub_diagonal_degree_lt -> Matrix.charpoly_sub_diagonal_degree_lt is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_ltₓ'. -/
theorem charpoly_sub_diagonal_degree_lt :
(M.charpoly - ∏ i : n, X - C (M i i)).degree < ↑(Fintype.card n - 1) :=
by
@@ -87,9 +84,6 @@ theorem charpoly_sub_diagonal_degree_lt :
intros ; apply charmatrix_apply_natDegree_le
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
-/- warning: matrix.charpoly_coeff_eq_prod_coeff_of_le -> Matrix.charpoly_coeff_eq_prod_coeff_of_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_leₓ'. -/
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
M.charpoly.coeff k = (∏ i : n, X - C (M i i)).coeff k :=
by
@@ -97,12 +91,6 @@ theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤
apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) _; rw [WithBot.coe_le_coe]; apply h
#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_le
-/- warning: matrix.det_of_card_zero -> Matrix.det_of_card_zero is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n], (Eq.{1} Nat (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (forall (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n], (Eq.{1} Nat (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (forall (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align matrix.det_of_card_zero Matrix.det_of_card_zeroₓ'. -/
theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
rw [Fintype.card_eq_zero_iff] at h; suffices M = 1 by simp [this]; ext i; exact h.elim i
#align matrix.det_of_card_zero Matrix.det_of_card_zero
@@ -147,12 +135,6 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
#align matrix.charpoly_monic Matrix.charpoly_monic
-/
-/- warning: matrix.trace_eq_neg_charpoly_coeff -> Matrix.trace_eq_neg_charpoly_coeff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] [_inst_5 : Nonempty.{succ u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.trace.{u2, u1} n R _inst_3 (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) M) (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] [_inst_5 : Nonempty.{succ u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.trace.{u2, u1} n R _inst_3 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) M) (Neg.neg.{u1} R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
-Case conversion may be inaccurate. Consider using '#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeffₓ'. -/
theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
trace M = -M.charpoly.coeff (Fintype.card n - 1) :=
by
@@ -162,9 +144,6 @@ theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
rfl
#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeff
-/- warning: matrix.mat_poly_equiv_eval -> Matrix.matPolyEquiv_eval is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_evalₓ'. -/
-- I feel like this should use polynomial.alg_hom_eval₂_algebra_map
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
(matPolyEquiv M).eval ((scalar n) r) i j = (M i j).eval r :=
@@ -183,9 +162,6 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
simp only [h'n, MulZeroClass.zero_mul]
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
-/- warning: matrix.eval_det -> Matrix.eval_det is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.eval_det Matrix.eval_detₓ'. -/
theorem eval_det (M : Matrix n n R[X]) (r : R) :
Polynomial.eval r M.det = (Polynomial.eval (scalar n r) (matPolyEquiv M)).det :=
by
@@ -193,12 +169,6 @@ theorem eval_det (M : Matrix n n R[X]) (r : R) :
apply congr_arg det; ext; symm; convert mat_poly_equiv_eval _ _ _ _
#align matrix.eval_det Matrix.eval_det
-/- warning: matrix.det_eq_sign_charpoly_coeff -> Matrix.det_eq_sign_charpoly_coeff is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) (Fintype.card.{u2} n _inst_3)) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Neg.neg.{u1} R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_1)) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Fintype.card.{u2} n _inst_3)) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))
-Case conversion may be inaccurate. Consider using '#align matrix.det_eq_sign_charpoly_coeff Matrix.det_eq_sign_charpoly_coeffₓ'. -/
theorem det_eq_sign_charpoly_coeff (M : Matrix n n R) :
M.det = (-1) ^ Fintype.card n * M.charpoly.coeff 0 :=
by
@@ -210,9 +180,6 @@ end Matrix
variable {p : ℕ} [Fact p.Prime]
-/- warning: mat_poly_equiv_eq_X_pow_sub_C -> matPolyEquiv_eq_x_pow_sub_c is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_x_pow_sub_cₓ'. -/
theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
X ^ k - C (M ^ k) :=
@@ -241,9 +208,6 @@ theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
#align matrix.aeval_eq_aeval_mod_charpoly Matrix.aeval_eq_aeval_mod_charpoly
-/
-/- warning: matrix.pow_eq_aeval_mod_charpoly -> Matrix.pow_eq_aeval_mod_charpoly is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align matrix.pow_eq_aeval_mod_charpoly Matrix.pow_eq_aeval_mod_charpolyₓ'. -/
/-- Any matrix power can be computed as the sum of matrix powers less than `fintype.card n`.
TODO: add the statement for negative powers phrased with `zpow`. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -103,12 +103,8 @@ lean 3 declaration is
but is expected to have type
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n], (Eq.{1} Nat (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (forall (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))
Case conversion may be inaccurate. Consider using '#align matrix.det_of_card_zero Matrix.det_of_card_zeroₓ'. -/
-theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 :=
- by
- rw [Fintype.card_eq_zero_iff] at h
- suffices M = 1 by simp [this]
- ext i
- exact h.elim i
+theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
+ rw [Fintype.card_eq_zero_iff] at h; suffices M = 1 by simp [this]; ext i; exact h.elim i
#align matrix.det_of_card_zero Matrix.det_of_card_zero
#print Matrix.charpoly_degree_eq_dim /-
@@ -116,31 +112,16 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
M.charpoly.degree = Fintype.card n :=
by
by_cases Fintype.card n = 0
- · rw [h]
- unfold charpoly
- rw [det_of_card_zero]
- · simp
- · assumption
+ · rw [h]; unfold charpoly; rw [det_of_card_zero]; · simp; · assumption
rw [← sub_add_cancel M.charpoly (∏ i : n, X - C (M i i))]
have h1 : (∏ i : n, X - C (M i i)).degree = Fintype.card n :=
by
- rw [degree_eq_iff_nat_degree_eq_of_pos]
- swap
- apply Nat.pos_of_ne_zero h
- rw [nat_degree_prod']
- simp_rw [nat_degree_X_sub_C]
- unfold Fintype.card
- simp
- simp_rw [(monic_X_sub_C _).leadingCoeff]
- simp
- rw [degree_add_eq_right_of_degree_lt]
- exact h1
- rw [h1]
- apply lt_trans (charpoly_sub_diagonal_degree_lt M)
- rw [WithBot.coe_lt_coe]
- rw [← Nat.pred_eq_sub_one]
- apply Nat.pred_lt
- apply h
+ rw [degree_eq_iff_nat_degree_eq_of_pos]; swap; apply Nat.pos_of_ne_zero h
+ rw [nat_degree_prod']; simp_rw [nat_degree_X_sub_C]; unfold Fintype.card; simp
+ simp_rw [(monic_X_sub_C _).leadingCoeff]; simp
+ rw [degree_add_eq_right_of_degree_lt]; exact h1; rw [h1]
+ apply lt_trans (charpoly_sub_diagonal_degree_lt M); rw [WithBot.coe_lt_coe]
+ rw [← Nat.pred_eq_sub_one]; apply Nat.pred_lt; apply h
#align matrix.charpoly_degree_eq_dim Matrix.charpoly_degree_eq_dim
-/
@@ -155,25 +136,14 @@ theorem charpoly_natDegree_eq_dim [Nontrivial R] (M : Matrix n n R) :
theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
by
nontriviality
- by_cases Fintype.card n = 0
- · rw [charpoly, det_of_card_zero h]
- apply monic_one
- have mon : (∏ i : n, X - C (M i i)).Monic :=
- by
- apply monic_prod_of_monic univ fun i : n => X - C (M i i)
- simp [monic_X_sub_C]
+ by_cases Fintype.card n = 0; · rw [charpoly, det_of_card_zero h]; apply monic_one
+ have mon : (∏ i : n, X - C (M i i)).Monic := by
+ apply monic_prod_of_monic univ fun i : n => X - C (M i i); simp [monic_X_sub_C]
rw [← sub_add_cancel (∏ i : n, X - C (M i i)) M.charpoly] at mon
- rw [monic] at *
- rw [leading_coeff_add_of_degree_lt] at mon
- rw [← mon]
- rw [charpoly_degree_eq_dim]
- rw [← neg_sub]
- rw [degree_neg]
- apply lt_trans (charpoly_sub_diagonal_degree_lt M)
- rw [WithBot.coe_lt_coe]
- rw [← Nat.pred_eq_sub_one]
- apply Nat.pred_lt
- apply h
+ rw [monic] at *; rw [leading_coeff_add_of_degree_lt] at mon; rw [← mon]
+ rw [charpoly_degree_eq_dim]; rw [← neg_sub]; rw [degree_neg]
+ apply lt_trans (charpoly_sub_diagonal_degree_lt M); rw [WithBot.coe_lt_coe]
+ rw [← Nat.pred_eq_sub_one]; apply Nat.pred_lt; apply h
#align matrix.charpoly_monic Matrix.charpoly_monic
-/
@@ -201,10 +171,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
by
unfold Polynomial.eval; unfold eval₂
trans Polynomial.sum (matPolyEquiv M) fun (e : ℕ) (a : Matrix n n R) => (a * (scalar n) r ^ e) i j
- · unfold Polynomial.sum
- rw [sum_apply]
- dsimp
- rfl
+ · unfold Polynomial.sum; rw [sum_apply]; dsimp; rfl
· simp_rw [← RingHom.map_pow, ← (scalar.commute _ _).Eq]
simp only [coe_scalar, Matrix.one_mul, RingHom.id_apply, Pi.smul_apply, smul_eq_mul, mul_eq_mul,
Algebra.smul_mul_assoc]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -68,10 +68,7 @@ namespace Matrix
variable (M)
/- warning: matrix.charpoly_sub_diagonal_degree_lt -> Matrix.charpoly_sub_diagonal_degree_lt is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), LT.lt.{0} (WithBot.{0} Nat) (Preorder.toHasLt.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (Finset.prod.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) => R -> (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.C.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (M i i)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (WithBot.{0} Nat) (HasLiftT.mk.{1, 1} Nat (WithBot.{0} Nat) (CoeTCₓ.coe.{1, 1} Nat (WithBot.{0} Nat) (WithBot.hasCoeT.{0} Nat))) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (Finset.prod.{u1, u2} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.C.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)))))) (Nat.cast.{0} (WithBot.{0} Nat) (Semiring.toNatCast.{0} (WithBot.{0} Nat) (OrderedSemiring.toSemiring.{0} (WithBot.{0} Nat) (OrderedCommSemiring.toOrderedSemiring.{0} (WithBot.{0} Nat) (WithBot.orderedCommSemiring.{0} Nat (fun (a : Nat) (b : Nat) => instDecidableEqNat a b) Nat.canonicallyOrderedCommSemiring Nat.nontrivial)))) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_ltₓ'. -/
theorem charpoly_sub_diagonal_degree_lt :
(M.charpoly - ∏ i : n, X - C (M i i)).degree < ↑(Fintype.card n - 1) :=
@@ -91,10 +88,7 @@ theorem charpoly_sub_diagonal_degree_lt :
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
/- warning: matrix.charpoly_coeff_eq_prod_coeff_of_le -> Matrix.charpoly_coeff_eq_prod_coeff_of_le is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) {k : Nat}, (LE.le.{0} Nat Nat.hasLe (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) k) -> (Eq.{succ u1} R (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) k) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Finset.prod.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) => R -> (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.C.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (M i i)))) k))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) {k : Nat}, (LE.le.{0} Nat instLENat (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) k) -> (Eq.{succ u1} R (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) k) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Finset.prod.{u1, u2} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.C.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)))) k))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_leₓ'. -/
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
M.charpoly.coeff k = (∏ i : n, X - C (M i i)).coeff k :=
@@ -199,10 +193,7 @@ theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeff
/- warning: matrix.mat_poly_equiv_eval -> Matrix.matPolyEquiv_eval is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (r : R) (i : n) (j : n), Eq.{succ u1} R (Polynomial.eval.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (fun (_x : RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) => R -> (Matrix.{u2, u2, u1} n n R)) (RingHom.hasCoeToFun.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (Matrix.scalar.{u2, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) => (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) -> (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M) i j) (Polynomial.eval.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) r (M i j))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R) (i : n) (j : n), Eq.{succ u1} R (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M) i j) (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (M i j))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_evalₓ'. -/
-- I feel like this should use polynomial.alg_hom_eval₂_algebra_map
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
@@ -226,10 +217,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
/- warning: matrix.eval_det -> Matrix.eval_det is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (r : R), Eq.{succ u1} R (Polynomial.eval.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) r (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1) M)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 (Polynomial.eval.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (fun (_x : RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) => R -> (Matrix.{u2, u2, u1} n n R)) (RingHom.hasCoeToFun.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (Matrix.scalar.{u2, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) => (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) -> (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R), Eq.{succ u1} R (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1) M)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M)))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.eval_det Matrix.eval_detₓ'. -/
theorem eval_det (M : Matrix n n R[X]) (r : R) :
Polynomial.eval r M.det = (Polynomial.eval (scalar n r) (matPolyEquiv M)).det :=
@@ -256,10 +244,7 @@ end Matrix
variable {p : ℕ} [Fact p.Prime]
/- warning: mat_poly_equiv_eq_X_pow_sub_C -> matPolyEquiv_eq_x_pow_sub_c is a dubious translation:
-lean 3 declaration is
- forall {n : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} n] [_inst_3 : Fintype.{u1} n] {K : Type.{u2}} (k : Nat) [_inst_6 : Field.{u2} K] (M : Matrix.{u1, u1, u2} n n K), Eq.{succ (max u1 u2)} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AlgEquiv.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) (fun (_x : AlgEquiv.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) => (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) -> (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) (matPolyEquiv.{u1, u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) => (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) -> (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHom.mapMatrix.{u2, u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (HasLiftT.mk.{succ u2, succ u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (CoeTCₓ.coe.{succ u2, succ u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (RingHom.hasCoeT.{u2, u2, u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (AlgHomClass.toRingHomClass.{u2, u2, u2, u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) K (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (AlgHom.algHomClass.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))))))) (Polynomial.expand.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) k))) (charmatrix.{u2, u1} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n K) Nat (Matrix.{u1, u1, u2} n n K) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n K) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) M k)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHSub.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.sub.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHPow.{max u1 u2, 0} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Monoid.Pow.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Ring.toMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.ring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))))) (Polynomial.X.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) k) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) => (Matrix.{u1, u1, u2} n n K) -> (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Polynomial.C.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n K) Nat (Matrix.{u1, u1, u2} n n K) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n K) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) M k)))
-but is expected to have type
- forall {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] {K : Type.{u1}} (k : Nat) [_inst_6 : Field.{u1} K] (M : Matrix.{u2, u2, u1} n n K), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))))))) (matPolyEquiv.{u2, u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (instHSub.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.sub.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.instRingMatrix.{u1, u2} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_6))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHPow.{max u2 u1, 0} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Monoid.Pow.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toMonoidWithZero.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Polynomial.X.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) k) (FunLike.coe.{succ (max u2 u1), succ (max u2 u1), succ (max u2 u1)} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (fun (_x : Matrix.{u2, u2, u1} n n K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (MulHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (RingHom.instRingHomClassRingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (Polynomial.C.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))
+<too large>
Case conversion may be inaccurate. Consider using '#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_x_pow_sub_cₓ'. -/
theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
@@ -290,10 +275,7 @@ theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
-/
/- warning: matrix.pow_eq_aeval_mod_charpoly -> Matrix.pow_eq_aeval_mod_charpoly is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) (k : Nat), Eq.{succ (max u2 u1)} (Matrix.{u2, u2, u1} n n R) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n R) Nat (Matrix.{u2, u2, u1} n n R) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n R) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Ring.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.ring.{u1, u2} n R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toRing.{u1} R _inst_1))))) M k) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (AlgHom.{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (Matrix.{u2, u2, u1} n n R)) ([anonymous].{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.aeval.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) M) (Polynomial.modByMonic.{u1} R (CommRing.toRing.{u1} R _inst_1) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHPow.{u1, 0} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) k) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u2, u2, u1} n n R) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u2, u2, u1} n n R) Nat (Matrix.{u2, u2, u1} n n R) (instHPow.{max u1 u2, 0} (Matrix.{u2, u2, u1} n n R) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (fun (_x : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => Matrix.{u2, u2, u1} n n R) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (SMulZeroClass.toSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, max u1 u2, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.aeval.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) M) (Polynomial.modByMonic.{u1} R (CommRing.toRing.{u1} R _inst_1) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHPow.{u1, 0} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) k) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M)))
+<too large>
Case conversion may be inaccurate. Consider using '#align matrix.pow_eq_aeval_mod_charpoly Matrix.pow_eq_aeval_mod_charpolyₓ'. -/
/-- Any matrix power can be computed as the sum of matrix powers less than `fintype.card n`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -202,7 +202,7 @@ theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (r : R) (i : n) (j : n), Eq.{succ u1} R (Polynomial.eval.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (fun (_x : RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) => R -> (Matrix.{u2, u2, u1} n n R)) (RingHom.hasCoeToFun.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (Matrix.scalar.{u2, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) => (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) -> (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M) i j) (Polynomial.eval.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) r (M i j))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R) (i : n) (j : n), Eq.{succ u1} R (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M) i j) (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (M i j))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R) (i : n) (j : n), Eq.{succ u1} R (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M) i j) (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (M i j))
Case conversion may be inaccurate. Consider using '#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_evalₓ'. -/
-- I feel like this should use polynomial.alg_hom_eval₂_algebra_map
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
@@ -229,7 +229,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (r : R), Eq.{succ u1} R (Polynomial.eval.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) r (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1) M)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 (Polynomial.eval.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (fun (_x : RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) => R -> (Matrix.{u2, u2, u1} n n R)) (RingHom.hasCoeToFun.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (Matrix.scalar.{u2, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) => (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) -> (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M)))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R), Eq.{succ u1} R (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1) M)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M)))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R), Eq.{succ u1} R (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1) M)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M)))
Case conversion may be inaccurate. Consider using '#align matrix.eval_det Matrix.eval_detₓ'. -/
theorem eval_det (M : Matrix n n R[X]) (r : R) :
Polynomial.eval r M.det = (Polynomial.eval (scalar n r) (matPolyEquiv M)).det :=
@@ -259,7 +259,7 @@ variable {p : ℕ} [Fact p.Prime]
lean 3 declaration is
forall {n : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} n] [_inst_3 : Fintype.{u1} n] {K : Type.{u2}} (k : Nat) [_inst_6 : Field.{u2} K] (M : Matrix.{u1, u1, u2} n n K), Eq.{succ (max u1 u2)} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AlgEquiv.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) (fun (_x : AlgEquiv.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) => (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) -> (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) (matPolyEquiv.{u1, u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) => (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) -> (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHom.mapMatrix.{u2, u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (HasLiftT.mk.{succ u2, succ u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (CoeTCₓ.coe.{succ u2, succ u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (RingHom.hasCoeT.{u2, u2, u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (AlgHomClass.toRingHomClass.{u2, u2, u2, u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) K (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (AlgHom.algHomClass.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))))))) (Polynomial.expand.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) k))) (charmatrix.{u2, u1} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n K) Nat (Matrix.{u1, u1, u2} n n K) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n K) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) M k)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHSub.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.sub.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHPow.{max u1 u2, 0} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Monoid.Pow.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Ring.toMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.ring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))))) (Polynomial.X.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) k) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) => (Matrix.{u1, u1, u2} n n K) -> (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Polynomial.C.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n K) Nat (Matrix.{u1, u1, u2} n n K) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n K) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) M k)))
but is expected to have type
- forall {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] {K : Type.{u1}} (k : Nat) [_inst_6 : Field.{u1} K] (M : Matrix.{u2, u2, u1} n n K), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))))))) (matPolyEquiv.{u2, u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (instHSub.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.sub.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.instRingMatrix.{u1, u2} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_6))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHPow.{max u2 u1, 0} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Monoid.Pow.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toMonoidWithZero.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Polynomial.X.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) k) (FunLike.coe.{succ (max u2 u1), succ (max u2 u1), succ (max u2 u1)} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (fun (_x : Matrix.{u2, u2, u1} n n K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (MulHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (RingHom.instRingHomClassRingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (Polynomial.C.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))
+ forall {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] {K : Type.{u1}} (k : Nat) [_inst_6 : Field.{u1} K] (M : Matrix.{u2, u2, u1} n n K), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))))))) (matPolyEquiv.{u2, u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (instHSub.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.sub.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.instRingMatrix.{u1, u2} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_6))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHPow.{max u2 u1, 0} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Monoid.Pow.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toMonoidWithZero.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Polynomial.X.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) k) (FunLike.coe.{succ (max u2 u1), succ (max u2 u1), succ (max u2 u1)} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (fun (_x : Matrix.{u2, u2, u1} n n K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (MulHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (RingHom.instRingHomClassRingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (Polynomial.C.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))
Case conversion may be inaccurate. Consider using '#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_x_pow_sub_cₓ'. -/
theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
@@ -293,7 +293,7 @@ theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
lean 3 declaration is
forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) (k : Nat), Eq.{succ (max u2 u1)} (Matrix.{u2, u2, u1} n n R) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n R) Nat (Matrix.{u2, u2, u1} n n R) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n R) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Ring.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.ring.{u1, u2} n R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toRing.{u1} R _inst_1))))) M k) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (AlgHom.{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (Matrix.{u2, u2, u1} n n R)) ([anonymous].{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.aeval.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) M) (Polynomial.modByMonic.{u1} R (CommRing.toRing.{u1} R _inst_1) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHPow.{u1, 0} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) k) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M)))
but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u2, u2, u1} n n R) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u2, u2, u1} n n R) Nat (Matrix.{u2, u2, u1} n n R) (instHPow.{max u1 u2, 0} (Matrix.{u2, u2, u1} n n R) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (fun (_x : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => Matrix.{u2, u2, u1} n n R) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (SMulZeroClass.toSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, max u1 u2, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.aeval.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) M) (Polynomial.modByMonic.{u1} R (CommRing.toRing.{u1} R _inst_1) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHPow.{u1, 0} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) k) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M)))
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u2, u2, u1} n n R) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u2, u2, u1} n n R) Nat (Matrix.{u2, u2, u1} n n R) (instHPow.{max u1 u2, 0} (Matrix.{u2, u2, u1} n n R) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (fun (_x : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => Matrix.{u2, u2, u1} n n R) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (SMulZeroClass.toSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, max u1 u2, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.aeval.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) M) (Polynomial.modByMonic.{u1} R (CommRing.toRing.{u1} R _inst_1) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHPow.{u1, 0} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) k) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M)))
Case conversion may be inaccurate. Consider using '#align matrix.pow_eq_aeval_mod_charpoly Matrix.pow_eq_aeval_mod_charpolyₓ'. -/
/-- Any matrix power can be computed as the sum of matrix powers less than `fintype.card n`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson, Jalex Stark
! This file was ported from Lean 3 source module linear_algebra.matrix.charpoly.coeff
-! leanprover-community/mathlib commit 9745b093210e9dac443af24da9dba0f9e2b6c912
+! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.LinearAlgebra.Matrix.Charpoly.Basic
/-!
# Characteristic polynomials
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We give methods for computing coefficients of the characteristic polynomial.
## Main definitions
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -47,19 +47,29 @@ open Finset
variable {M : Matrix n n R}
+#print charmatrix_apply_natDegree /-
theorem charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
(charmatrix M i j).natDegree = ite (i = j) 1 0 := by
by_cases i = j <;> simp [h, ← degree_eq_iff_nat_degree_eq_of_pos (Nat.succ_pos 0)]
#align charmatrix_apply_nat_degree charmatrix_apply_natDegree
+-/
+#print charmatrix_apply_natDegree_le /-
theorem charmatrix_apply_natDegree_le (i j : n) : (charmatrix M i j).natDegree ≤ ite (i = j) 1 0 :=
by split_ifs <;> simp [h, nat_degree_X_sub_C_le]
#align charmatrix_apply_nat_degree_le charmatrix_apply_natDegree_le
+-/
namespace Matrix
variable (M)
+/- warning: matrix.charpoly_sub_diagonal_degree_lt -> Matrix.charpoly_sub_diagonal_degree_lt is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), LT.lt.{0} (WithBot.{0} Nat) (Preorder.toHasLt.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))))) (Polynomial.degree.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (Finset.prod.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) => R -> (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.C.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (M i i)))))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) Nat (WithBot.{0} Nat) (HasLiftT.mk.{1, 1} Nat (WithBot.{0} Nat) (CoeTCₓ.coe.{1, 1} Nat (WithBot.{0} Nat) (WithBot.hasCoeT.{0} Nat))) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), LT.lt.{0} (WithBot.{0} Nat) (Preorder.toLT.{0} (WithBot.{0} Nat) (WithBot.preorder.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)))) (Polynomial.degree.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (Finset.prod.{u1, u2} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.C.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)))))) (Nat.cast.{0} (WithBot.{0} Nat) (Semiring.toNatCast.{0} (WithBot.{0} Nat) (OrderedSemiring.toSemiring.{0} (WithBot.{0} Nat) (OrderedCommSemiring.toOrderedSemiring.{0} (WithBot.{0} Nat) (WithBot.orderedCommSemiring.{0} Nat (fun (a : Nat) (b : Nat) => instDecidableEqNat a b) Nat.canonicallyOrderedCommSemiring Nat.nontrivial)))) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+Case conversion may be inaccurate. Consider using '#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_ltₓ'. -/
theorem charpoly_sub_diagonal_degree_lt :
(M.charpoly - ∏ i : n, X - C (M i i)).degree < ↑(Fintype.card n - 1) :=
by
@@ -77,6 +87,12 @@ theorem charpoly_sub_diagonal_degree_lt :
intros ; apply charmatrix_apply_natDegree_le
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
+/- warning: matrix.charpoly_coeff_eq_prod_coeff_of_le -> Matrix.charpoly_coeff_eq_prod_coeff_of_le is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) {k : Nat}, (LE.le.{0} Nat Nat.hasLe (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) k) -> (Eq.{succ u1} R (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) k) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Finset.prod.{u1, u2} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (coeFn.{succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (fun (_x : RingHom.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) => R -> (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.hasCoeToFun.{u1, u1} R (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.C.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (M i i)))) k))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) {k : Nat}, (LE.le.{0} Nat instLENat (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) k) -> (Eq.{succ u1} R (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) k) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Finset.prod.{u1, u2} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) n (CommRing.toCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1)) (Finset.univ.{u2} n _inst_3) (fun (i : n) => HSub.hSub.{u1, u1, u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (instHSub.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.sub.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.X.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.instRingHomClassRingHom.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.C.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (M i i)))) k))
+Case conversion may be inaccurate. Consider using '#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_leₓ'. -/
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
M.charpoly.coeff k = (∏ i : n, X - C (M i i)).coeff k :=
by
@@ -84,6 +100,12 @@ theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤
apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) _; rw [WithBot.coe_le_coe]; apply h
#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_le
+/- warning: matrix.det_of_card_zero -> Matrix.det_of_card_zero is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n], (Eq.{1} Nat (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) -> (forall (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n], (Eq.{1} Nat (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) -> (forall (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align matrix.det_of_card_zero Matrix.det_of_card_zeroₓ'. -/
theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 :=
by
rw [Fintype.card_eq_zero_iff] at h
@@ -92,6 +114,7 @@ theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1
exact h.elim i
#align matrix.det_of_card_zero Matrix.det_of_card_zero
+#print Matrix.charpoly_degree_eq_dim /-
theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
M.charpoly.degree = Fintype.card n :=
by
@@ -122,12 +145,16 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
apply Nat.pred_lt
apply h
#align matrix.charpoly_degree_eq_dim Matrix.charpoly_degree_eq_dim
+-/
+#print Matrix.charpoly_natDegree_eq_dim /-
theorem charpoly_natDegree_eq_dim [Nontrivial R] (M : Matrix n n R) :
M.charpoly.natDegree = Fintype.card n :=
natDegree_eq_of_degree_eq_some (charpoly_degree_eq_dim M)
#align matrix.charpoly_nat_degree_eq_dim Matrix.charpoly_natDegree_eq_dim
+-/
+#print Matrix.charpoly_monic /-
theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
by
nontriviality
@@ -151,7 +178,14 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic :=
apply Nat.pred_lt
apply h
#align matrix.charpoly_monic Matrix.charpoly_monic
+-/
+/- warning: matrix.trace_eq_neg_charpoly_coeff -> Matrix.trace_eq_neg_charpoly_coeff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] [_inst_5 : Nonempty.{succ u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.trace.{u2, u1} n R _inst_3 (AddCommGroup.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toAddCommGroup.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) M) (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat Nat.hasSub) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] [_inst_5 : Nonempty.{succ u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.trace.{u2, u1} n R _inst_3 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonUnitalNonAssocRing.toNonUnitalNonAssocSemiring.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) M) (Neg.neg.{u1} R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (HSub.hSub.{0, 0, 0} Nat Nat Nat (instHSub.{0} Nat instSubNat) (Fintype.card.{u2} n _inst_3) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+Case conversion may be inaccurate. Consider using '#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeffₓ'. -/
theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
trace M = -M.charpoly.coeff (Fintype.card n - 1) :=
by
@@ -161,6 +195,12 @@ theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
rfl
#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeff
+/- warning: matrix.mat_poly_equiv_eval -> Matrix.matPolyEquiv_eval is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (r : R) (i : n) (j : n), Eq.{succ u1} R (Polynomial.eval.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (fun (_x : RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) => R -> (Matrix.{u2, u2, u1} n n R)) (RingHom.hasCoeToFun.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (Matrix.scalar.{u2, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) => (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) -> (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M) i j) (Polynomial.eval.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) r (M i j))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R) (i : n) (j : n), Eq.{succ u1} R (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M) i j) (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (M i j))
+Case conversion may be inaccurate. Consider using '#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_evalₓ'. -/
-- I feel like this should use polynomial.alg_hom_eval₂_algebra_map
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
(matPolyEquiv M).eval ((scalar n) r) i j = (M i j).eval r :=
@@ -182,6 +222,12 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
simp only [h'n, MulZeroClass.zero_mul]
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
+/- warning: matrix.eval_det -> Matrix.eval_det is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (r : R), Eq.{succ u1} R (Polynomial.eval.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) r (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1) M)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 (Polynomial.eval.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (fun (_x : RingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) => R -> (Matrix.{u2, u2, u1} n n R)) (RingHom.hasCoeToFun.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => (fun (a : n) (b : n) => _inst_2 a b) a b))) (Matrix.scalar.{u2, u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (coeFn.{succ (max u2 u1), succ (max u2 u1)} (AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (fun (_x : AlgEquiv.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) => (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) -> (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u1, max u2 u1, max u2 u1} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (r : R), Eq.{succ u1} R (Polynomial.eval.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) r (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.commRing.{u1} R _inst_1) M)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 (Polynomial.eval.{max u1 u2} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) r) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => Matrix.{u2, u2, u1} n n R) _x) (MulHomClass.toFunLike.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, u1, max u2 u1} (RingHom.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.nonAssocSemiring.{u1, u2} n R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Matrix.scalar.{u2, u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) r) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} R (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} R (Matrix.{u2, u2, u1} n n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))))) (matPolyEquiv.{u2, u1} R (CommRing.toCommSemiring.{u1} R _inst_1) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) M)))
+Case conversion may be inaccurate. Consider using '#align matrix.eval_det Matrix.eval_detₓ'. -/
theorem eval_det (M : Matrix n n R[X]) (r : R) :
Polynomial.eval r M.det = (Polynomial.eval (scalar n r) (matPolyEquiv M)).det :=
by
@@ -189,6 +235,12 @@ theorem eval_det (M : Matrix n n R[X]) (r : R) :
apply congr_arg det; ext; symm; convert mat_poly_equiv_eval _ _ _ _
#align matrix.eval_det Matrix.eval_det
+/- warning: matrix.det_eq_sign_charpoly_coeff -> Matrix.det_eq_sign_charpoly_coeff is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (Distrib.toHasMul.{u1} R (Ring.toDistrib.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (Ring.toMonoid.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Neg.neg.{u1} R (SubNegMonoid.toHasNeg.{u1} R (AddGroup.toSubNegMonoid.{u1} R (AddGroupWithOne.toAddGroup.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1)))))) (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddGroupWithOne.toAddMonoidWithOne.{u1} R (AddCommGroupWithOne.toAddGroupWithOne.{u1} R (Ring.toAddCommGroupWithOne.{u1} R (CommRing.toRing.{u1} R _inst_1))))))))) (Fintype.card.{u2} n _inst_3)) (Polynomial.coeff.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R), Eq.{succ u1} R (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 R _inst_1 M) (HMul.hMul.{u1, u1, u1} R R R (instHMul.{u1} R (NonUnitalNonAssocRing.toMul.{u1} R (NonAssocRing.toNonUnitalNonAssocRing.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (HPow.hPow.{u1, 0, u1} R Nat R (instHPow.{u1, 0} R Nat (Monoid.Pow.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Neg.neg.{u1} R (Ring.toNeg.{u1} R (CommRing.toRing.{u1} R _inst_1)) (OfNat.ofNat.{u1} R 1 (One.toOfNat1.{u1} R (Semiring.toOne.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Fintype.card.{u2} n _inst_3)) (Polynomial.coeff.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))
+Case conversion may be inaccurate. Consider using '#align matrix.det_eq_sign_charpoly_coeff Matrix.det_eq_sign_charpoly_coeffₓ'. -/
theorem det_eq_sign_charpoly_coeff (M : Matrix n n R) :
M.det = (-1) ^ Fintype.card n * M.charpoly.coeff 0 :=
by
@@ -200,6 +252,12 @@ end Matrix
variable {p : ℕ} [Fact p.Prime]
+/- warning: mat_poly_equiv_eq_X_pow_sub_C -> matPolyEquiv_eq_x_pow_sub_c is a dubious translation:
+lean 3 declaration is
+ forall {n : Type.{u1}} [_inst_2 : DecidableEq.{succ u1} n] [_inst_3 : Fintype.{u1} n] {K : Type.{u2}} (k : Nat) [_inst_6 : Field.{u2} K] (M : Matrix.{u1, u1, u2} n n K), Eq.{succ (max u1 u2)} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (AlgEquiv.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) (fun (_x : AlgEquiv.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) => (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) -> (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (AlgEquiv.hasCoeToFun.{u2, max u1 u2, max u1 u2} K (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.algebra.{u2, u1, u2} n K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u2, max u1 u2} K (Matrix.{u1, u1, u2} n n K) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u2, u1, u2} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))))) (matPolyEquiv.{u1, u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) => (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) -> (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHom.mapMatrix.{u2, u2, u1} n (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) ((fun (a : Type.{u2}) (b : Type.{u2}) [self : HasLiftT.{succ u2, succ u2} a b] => self.0) (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (HasLiftT.mk.{succ u2, succ u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (CoeTCₓ.coe.{succ u2, succ u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (RingHom.{u2, u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) (RingHom.hasCoeT.{u2, u2, u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (NonAssocRing.toNonAssocSemiring.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Ring.toNonAssocRing.{u2} (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.ring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (AlgHomClass.toRingHomClass.{u2, u2, u2, u2} (AlgHom.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))) K (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (Ring.toSemiring.{u2} K (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (AlgHom.algHomClass.{u2, u2, u2} K (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.semiring.{u2} K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u2, u2} K K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) (Algebra.id.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))))))))) (Polynomial.expand.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6)) k))) (charmatrix.{u2, u1} K (EuclideanDomain.toCommRing.{u2} K (Field.toEuclideanDomain.{u2} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n K) Nat (Matrix.{u1, u1, u2} n n K) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n K) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) M k)))) (HSub.hSub.{max u1 u2, max u1 u2, max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHSub.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.sub.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHPow.{max u1 u2, 0} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Monoid.Pow.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Ring.toMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.ring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6))))))) (Polynomial.X.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) k) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (fun (_x : RingHom.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) => (Matrix.{u1, u1, u2} n n K) -> (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (RingHom.hasCoeToFun.{max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n K) (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Polynomial.C.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.semiring.{u2, u1} n K (CommSemiring.toSemiring.{u2} K (Semifield.toCommSemiring.{u2} K (Field.toSemifield.{u2} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u1, u1, u2} n n K) Nat (Matrix.{u1, u1, u2} n n K) (instHPow.{max u1 u2, 0} (Matrix.{u1, u1, u2} n n K) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Ring.toMonoid.{max u1 u2} (Matrix.{u1, u1, u2} n n K) (Matrix.ring.{u2, u1} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u2} K (Field.toDivisionRing.{u2} K _inst_6)))))) M k)))
+but is expected to have type
+ forall {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] {K : Type.{u1}} (k : Nat) [_inst_6 : Field.{u1} K] (M : Matrix.{u2, u2, u1} n n K), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toZero.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddMonoid.toAddZeroClass.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{u1} K (Semiring.toMonoidWithZero.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (Module.toDistribMulAction.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u1 u2} (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Algebra.toModule.{u1, max u1 u2} K (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, max u1 u2, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (AlgEquivClass.toAlgHomClass.{max u1 u2, u1, max u1 u2, max u1 u2} (AlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgEquiv.instAlgEquivClassAlgEquiv.{u1, max u1 u2, max u1 u2} K (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.algebraOfAlgebra.{u1, max u2 u1} K (Matrix.{u2, u2, u1} n n K) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n K K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))))))))) (matPolyEquiv.{u2, u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (_x : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _x) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Polynomial.{max u1 u2} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (FunLike.coe.{max (succ u1) (succ u2), max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (fun (a : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) => Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) a) (MulHomClass.toFunLike.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalNonAssocSemiring.toMul.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonUnitalRingHomClass.toMulHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (RingHomClass.toNonUnitalRingHomClass.{max u1 u2, max u1 u2, max u1 u2} (RingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (RingHom.instRingHomClassRingHom.{max u1 u2, max u1 u2} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.nonAssocSemiring.{u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (RingHom.mapMatrix.{u1, u1, u2} n (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (RingHomClass.toRingHom.{u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) (AlgHomClass.toRingHomClass.{u1, u1, u1, u1} (AlgHom.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))))) K (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (AlgHom.algHomClass.{u1, u1, u1} K (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.semiring.{u1} K (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))) (Polynomial.algebraOfAlgebra.{u1, u1} K K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) (CommSemiring.toSemiring.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) (Algebra.id.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)))))) (Polynomial.expand.{u1} K (Semifield.toCommSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6)) k))) (charmatrix.{u1, u2} K (EuclideanDomain.toCommRing.{u1} K (Field.toEuclideanDomain.{u1} K _inst_6)) n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))) (instHSub.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.sub.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.instRingMatrix.{u1, u2} n K _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (DivisionRing.toRing.{u1} K (Field.toDivisionRing.{u1} K _inst_6))))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (instHPow.{max u2 u1, 0} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) Nat (Monoid.Pow.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (MonoidWithZero.toMonoid.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toMonoidWithZero.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (Polynomial.X.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) k) (FunLike.coe.{succ (max u2 u1), succ (max u2 u1), succ (max u2 u1)} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (fun (_x : Matrix.{u2, u2, u1} n n K) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Matrix.{u2, u2, u1} n n K) => Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) _x) (MulHomClass.toFunLike.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (NonUnitalNonAssocSemiring.toMul.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (NonUnitalRingHomClass.toMulHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (RingHomClass.toNonUnitalRingHomClass.{max u2 u1, max u2 u1, max u2 u1} (RingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (RingHom.instRingHomClassRingHom.{max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n K) (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Semiring.toNonAssocSemiring.{max u2 u1} (Polynomial.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (Polynomial.semiring.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))))) (Polynomial.C.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n K) Nat (Matrix.{u2, u2, u1} n n K) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n K) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (MonoidWithZero.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Semiring.toMonoidWithZero.{max u2 u1} (Matrix.{u2, u2, u1} n n K) (Matrix.semiring.{u1, u2} n K (DivisionSemiring.toSemiring.{u1} K (Semifield.toDivisionSemiring.{u1} K (Field.toSemifield.{u1} K _inst_6))) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k)))
+Case conversion may be inaccurate. Consider using '#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_x_pow_sub_cₓ'. -/
theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
X ^ k - C (M ^ k) :=
@@ -219,13 +277,21 @@ theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix
namespace Matrix
+#print Matrix.aeval_eq_aeval_mod_charpoly /-
/-- Any matrix polynomial `p` is equivalent under evaluation to `p %ₘ M.charpoly`; that is, `p`
is equivalent to a polynomial with degree less than the dimension of the matrix. -/
theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
aeval M p = aeval M (p %ₘ M.charpoly) :=
(aeval_modByMonic_eq_self_of_root M.charpoly_monic M.aeval_self_charpoly).symm
#align matrix.aeval_eq_aeval_mod_charpoly Matrix.aeval_eq_aeval_mod_charpoly
+-/
+/- warning: matrix.pow_eq_aeval_mod_charpoly -> Matrix.pow_eq_aeval_mod_charpoly is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) (k : Nat), Eq.{succ (max u2 u1)} (Matrix.{u2, u2, u1} n n R) (HPow.hPow.{max u2 u1, 0, max u2 u1} (Matrix.{u2, u2, u1} n n R) Nat (Matrix.{u2, u2, u1} n n R) (instHPow.{max u2 u1, 0} (Matrix.{u2, u2, u1} n n R) Nat (Monoid.Pow.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Ring.toMonoid.{max u2 u1} (Matrix.{u2, u2, u1} n n R) (Matrix.ring.{u1, u2} n R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toRing.{u1} R _inst_1))))) M k) (coeFn.{max (succ u1) (succ (max u2 u1)), max (succ u1) (succ (max u2 u1))} (AlgHom.{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (fun (_x : AlgHom.{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) => (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) -> (Matrix.{u2, u2, u1} n n R)) ([anonymous].{u1, u1, max u2 u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.aeval.{u1, max u2 u1} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.algebra.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) M) (Polynomial.modByMonic.{u1} R (CommRing.toRing.{u1} R _inst_1) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHPow.{u1, 0} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Ring.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.ring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) k) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {n : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} n] [_inst_3 : Fintype.{u2} n] (M : Matrix.{u2, u2, u1} n n R) (k : Nat), Eq.{max (succ u1) (succ u2)} (Matrix.{u2, u2, u1} n n R) (HPow.hPow.{max u1 u2, 0, max u1 u2} (Matrix.{u2, u2, u1} n n R) Nat (Matrix.{u2, u2, u1} n n R) (instHPow.{max u1 u2, 0} (Matrix.{u2, u2, u1} n n R) Nat (Monoid.Pow.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toMonoidWithZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) M k) (FunLike.coe.{max (succ u1) (succ u2), succ u1, max (succ u1) (succ u2)} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (fun (_x : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) => Matrix.{u2, u2, u1} n n R) _x) (SMulHomClass.toFunLike.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (SMulZeroClass.toSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toZero.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribSMul.toSMulZeroClass.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddMonoid.toAddZeroClass.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulAction.toDistribSMul.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (SMulZeroClass.toSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toZero.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribSMul.toSMulZeroClass.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (AddMonoid.toAddZeroClass.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))))) (DistribMulAction.toDistribSMul.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (DistribMulActionHomClass.toSMulHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))))) (AddCommMonoid.toAddMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonUnitalAlgHomClass.toDistribMulActionHomClass.{max u1 u2, u1, u1, max u1 u2} (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)))) (Module.toDistribMulAction.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))) (Algebra.toModule.{u1, u1} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (Module.toDistribMulAction.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toAddCommMonoid.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Semiring.toNonAssocSemiring.{max u1 u2} (Matrix.{u2, u2, u1} n n R) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b))))) (Algebra.toModule.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (AlgHom.instNonUnitalAlgHomClassToMonoidToMonoidWithZeroToSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToNonUnitalNonAssocSemiringToNonAssocSemiringToDistribMulActionToAddCommMonoidToModuleToDistribMulActionToAddCommMonoidToModule.{u1, u1, max u1 u2, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (AlgHom.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AlgHom.algHomClass.{u1, u1, max u1 u2} R (Polynomial.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Polynomial.semiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Polynomial.algebraOfAlgebra.{u1, u1} R R (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (Polynomial.aeval.{u1, max u1 u2} R (Matrix.{u2, u2, u1} n n R) (CommRing.toCommSemiring.{u1} R _inst_1) (Matrix.semiring.{u1, u2} n R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) _inst_3 (fun (a : n) (b : n) => _inst_2 a b)) (Matrix.instAlgebraMatrixSemiring.{u1, u2, u1} n R R _inst_3 (fun (a : n) (b : n) => _inst_2 a b) (CommRing.toCommSemiring.{u1} R _inst_1) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Algebra.id.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) M) (Polynomial.modByMonic.{u1} R (CommRing.toRing.{u1} R _inst_1) (HPow.hPow.{u1, 0, u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (instHPow.{u1, 0} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) Nat (Monoid.Pow.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (MonoidWithZero.toMonoid.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Semiring.toMonoidWithZero.{u1} (Polynomial.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (Polynomial.semiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))))) (Polynomial.X.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) k) (Matrix.charpoly.{u1, u2} R _inst_1 n (fun (a : n) (b : n) => _inst_2 a b) _inst_3 M)))
+Case conversion may be inaccurate. Consider using '#align matrix.pow_eq_aeval_mod_charpoly Matrix.pow_eq_aeval_mod_charpolyₓ'. -/
/-- Any matrix power can be computed as the sum of matrix powers less than `fintype.card n`.
TODO: add the statement for negative powers phrased with `zpow`. -/
@@ -237,6 +303,7 @@ end Matrix
section Ideal
+#print coeff_charpoly_mem_ideal_pow /-
theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k : ℕ) :
M.charpoly.coeff k ∈ I ^ (Fintype.card n - k) :=
by
@@ -255,6 +322,7 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
· rw [Nat.succ_eq_one_add, tsub_self_add, pow_zero, Ideal.one_eq_top]
exact Submodule.mem_top
#align coeff_charpoly_mem_ideal_pow coeff_charpoly_mem_ideal_pow
+-/
end Ideal
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -179,7 +179,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
apply (Finset.sum_subset (support_subset_support_matPolyEquiv _ _ _) _).symm
intro n hn h'n
rw [not_mem_support_iff] at h'n
- simp only [h'n, zero_mul]
+ simp only [h'n, MulZeroClass.zero_mul]
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
theorem eval_det (M : Matrix n n R[X]) (r : R) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -61,7 +61,7 @@ namespace Matrix
variable (M)
theorem charpoly_sub_diagonal_degree_lt :
- (M.charpoly - ∏ i : n, x - c (M i i)).degree < ↑(Fintype.card n - 1) :=
+ (M.charpoly - ∏ i : n, X - C (M i i)).degree < ↑(Fintype.card n - 1) :=
by
rw [charpoly, det_apply', ← insert_erase (mem_univ (Equiv.refl n)),
sum_insert (not_mem_erase (Equiv.refl n) univ), add_comm]
@@ -78,7 +78,7 @@ theorem charpoly_sub_diagonal_degree_lt :
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
- M.charpoly.coeff k = (∏ i : n, x - c (M i i)).coeff k :=
+ M.charpoly.coeff k = (∏ i : n, X - C (M i i)).coeff k :=
by
apply eq_of_sub_eq_zero; rw [← coeff_sub]; apply Polynomial.coeff_eq_zero_of_degree_lt
apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) _; rw [WithBot.coe_le_coe]; apply h
@@ -202,7 +202,7 @@ variable {p : ℕ} [Fact p.Prime]
theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
- x ^ k - c (M ^ k) :=
+ X ^ k - C (M ^ k) :=
by
ext m
rw [coeff_sub, coeff_C, matPolyEquiv_coeff_apply, RingHom.mapMatrix_apply, Matrix.map_apply,
@@ -230,7 +230,7 @@ theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
TODO: add the statement for negative powers phrased with `zpow`. -/
theorem pow_eq_aeval_mod_charpoly (M : Matrix n n R) (k : ℕ) :
- M ^ k = aeval M (x ^ k %ₘ M.charpoly) := by rw [← aeval_eq_aeval_mod_charpoly, map_pow, aeval_X]
+ M ^ k = aeval M (X ^ k %ₘ M.charpoly) := by rw [← aeval_eq_aeval_mod_charpoly, map_pow, aeval_X]
#align matrix.pow_eq_aeval_mod_charpoly Matrix.pow_eq_aeval_mod_charpoly
end Matrix
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
nat_cast
/int_cast
/rat_cast
to natCast
/intCast
/ratCast
(#11486)
Now that I am defining NNRat.cast
, I want a definitive answer to this naming issue. Plenty of lemmas in mathlib already use natCast
/intCast
/ratCast
over nat_cast
/int_cast
/rat_cast
, and this matches with the general expectation that underscore-separated name parts correspond to a single declaration.
@@ -66,7 +66,7 @@ theorem charpoly_sub_diagonal_degree_lt :
Units.val_one, add_sub_cancel_right, Equiv.coe_refl]
rw [← mem_degreeLT]
apply Submodule.sum_mem (degreeLT R (Fintype.card n - 1))
- intro c hc; rw [← C_eq_int_cast, C_mul']
+ intro c hc; rw [← C_eq_intCast, C_mul']
apply Submodule.smul_mem (degreeLT R (Fintype.card n - 1)) ↑↑(Equiv.Perm.sign c)
rw [mem_degreeLT]
apply lt_of_le_of_lt degree_le_natDegree _
@@ -62,7 +62,7 @@ theorem charpoly_sub_diagonal_degree_lt :
(M.charpoly - ∏ i : n, (X - C (M i i))).degree < ↑(Fintype.card n - 1) := by
rw [charpoly, det_apply', ← insert_erase (mem_univ (Equiv.refl n)),
sum_insert (not_mem_erase (Equiv.refl n) univ), add_comm]
- simp only [charmatrix_apply_eq, one_mul, Equiv.Perm.sign_refl, id.def, Int.cast_one,
+ simp only [charmatrix_apply_eq, one_mul, Equiv.Perm.sign_refl, id, Int.cast_one,
Units.val_one, add_sub_cancel_right, Equiv.coe_refl]
rw [← mem_degreeLT]
apply Submodule.sum_mem (degreeLT R (Fintype.card n - 1))
Data
(#11751)
Polynomial
and MvPolynomial
are algebraic objects, hence should be under Algebra
(or at least not under Data
)
@@ -3,8 +3,8 @@ Copyright (c) 2020 Aaron Anderson, Jalex Stark. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson, Jalex Stark
-/
-import Mathlib.Data.Polynomial.Expand
-import Mathlib.Data.Polynomial.Laurent
+import Mathlib.Algebra.Polynomial.Expand
+import Mathlib.Algebra.Polynomial.Laurent
import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
import Mathlib.LinearAlgebra.Matrix.Reindex
import Mathlib.RingTheory.Polynomial.Nilpotent
@@ -272,7 +272,7 @@ theorem matPolyEquiv_eq_X_pow_sub_C {K : Type*} (k : ℕ) [Field K] (M : Matrix
· rw [charmatrix_apply_ne _ _ _ hij, AlgHom.map_neg, expand_C, coeff_neg, coeff_C]
split_ifs with m0 mp <;>
-- Porting note: again, the first `Matrix.` that was `DMatrix.`
- simp only [hij, zero_sub, Matrix.zero_apply, sub_zero, neg_zero, Matrix.one_apply_ne, Ne.def,
+ simp only [hij, zero_sub, Matrix.zero_apply, sub_zero, neg_zero, Matrix.one_apply_ne, Ne,
not_false_iff]
set_option linter.uppercaseLean3 false in
#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_X_pow_sub_C
mul
-div
cancellation lemmas (#11530)
Lemma names around cancellation of multiplication and division are a mess.
This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero
lemma name, the Group
lemma, the AddGroup
lemma name).
| Statement | New name | Old name | |
@@ -63,7 +63,7 @@ theorem charpoly_sub_diagonal_degree_lt :
rw [charpoly, det_apply', ← insert_erase (mem_univ (Equiv.refl n)),
sum_insert (not_mem_erase (Equiv.refl n) univ), add_comm]
simp only [charmatrix_apply_eq, one_mul, Equiv.Perm.sign_refl, id.def, Int.cast_one,
- Units.val_one, add_sub_cancel, Equiv.coe_refl]
+ Units.val_one, add_sub_cancel_right, Equiv.coe_refl]
rw [← mem_degreeLT]
apply Submodule.sum_mem (degreeLT R (Fintype.card n - 1))
intro c hc; rw [← C_eq_int_cast, C_mul']
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -102,7 +102,7 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
· simp
· assumption
rw [← sub_add_cancel M.charpoly (∏ i : n, (X - C (M i i)))]
- -- porting note: added `↑` in front of `Fintype.card n`
+ -- Porting note: added `↑` in front of `Fintype.card n`
have h1 : (∏ i : n, (X - C (M i i))).degree = ↑(Fintype.card n) := by
rw [degree_eq_iff_natDegree_eq_of_pos (Nat.pos_of_ne_zero h), natDegree_prod']
simp_rw [natDegree_X_sub_C]
@@ -125,7 +125,7 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
#align matrix.charpoly_nat_degree_eq_dim Matrix.charpoly_natDegree_eq_dim
theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic := by
- nontriviality R -- porting note: was simply `nontriviality`
+ nontriviality R -- Porting note: was simply `nontriviality`
by_cases h : Fintype.card n = 0
· rw [charpoly, det_of_card_zero h]
apply monic_one
@@ -180,7 +180,7 @@ theorem eval_det (M : Matrix n n R[X]) (r : R) :
apply congr_arg det
ext
symm
- -- porting note: `exact` was `convert`
+ -- Porting note: `exact` was `convert`
exact matPolyEquiv_eval _ _ _ _
#align matrix.eval_det Matrix.eval_det
@@ -260,18 +260,18 @@ variable {p : ℕ} [Fact p.Prime]
theorem matPolyEquiv_eq_X_pow_sub_C {K : Type*} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
X ^ k - C (M ^ k) := by
- -- porting note: `i` and `j` are used later on, but were not mentioned in mathlib3
+ -- Porting note: `i` and `j` are used later on, but were not mentioned in mathlib3
ext m i j
rw [coeff_sub, coeff_C, matPolyEquiv_coeff_apply, RingHom.mapMatrix_apply, Matrix.map_apply,
AlgHom.coe_toRingHom, DMatrix.sub_apply, coeff_X_pow]
by_cases hij : i = j
· rw [hij, charmatrix_apply_eq, AlgHom.map_sub, expand_C, expand_X, coeff_sub, coeff_X_pow,
coeff_C]
- -- porting note: the second `Matrix.` was `DMatrix.`
+ -- Porting note: the second `Matrix.` was `DMatrix.`
split_ifs with mp m0 <;> simp only [Matrix.one_apply_eq, Matrix.zero_apply]
· rw [charmatrix_apply_ne _ _ _ hij, AlgHom.map_neg, expand_C, coeff_neg, coeff_C]
split_ifs with m0 mp <;>
- -- porting note: again, the first `Matrix.` that was `DMatrix.`
+ -- Porting note: again, the first `Matrix.` that was `DMatrix.`
simp only [hij, zero_sub, Matrix.zero_apply, sub_zero, neg_zero, Matrix.one_apply_ne, Ne.def,
not_false_iff]
set_option linter.uppercaseLean3 false in
@@ -306,10 +306,10 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
rw [← this]
apply coeff_prod_mem_ideal_pow_tsub
rintro i - (_ | k)
- · rw [Nat.zero_eq] -- porting note: `rw [Nat.zero_eq]` was not present
+ · rw [Nat.zero_eq] -- Porting note: `rw [Nat.zero_eq]` was not present
rw [tsub_zero, pow_one, charmatrix_apply, coeff_sub, ← smul_one_eq_diagonal, smul_apply,
smul_eq_mul, coeff_X_mul_zero, coeff_C_zero, zero_sub]
- apply neg_mem -- porting note: was `rw [neg_mem_iff]`, but Lean could not synth `NegMemClass`
+ apply neg_mem -- Porting note: was `rw [neg_mem_iff]`, but Lean could not synth `NegMemClass`
exact h (c i) i
· rw [Nat.succ_eq_one_add, tsub_self_add, pow_zero, Ideal.one_eq_top]
exact Submodule.mem_top
@@ -228,7 +228,7 @@ lemma derivative_det_one_add_X_smul (M : Matrix n n R) :
let e := Matrix.reindexLinearEquiv R R (Fintype.equivFin n) (Fintype.equivFin n)
rw [← Matrix.det_reindexLinearEquiv_self R[X] (Fintype.equivFin n)]
convert derivative_det_one_add_X_smul_aux (e M)
- · ext; simp
+ · ext; simp [e]
· delta trace
rw [← (Fintype.equivFin n).symm.sum_comp]
rfl
@@ -338,9 +338,9 @@ lemma reverse_charpoly (M : Matrix n n R) :
let q : R[T;T⁻¹] := det (1 - scalar n t * M.map LaurentPolynomial.C)
have ht : t_inv * t = 1 := by rw [← T_add, add_left_neg, T_zero]
have hp : toLaurentAlg M.charpoly = p := by
- simp [charpoly, charmatrix, AlgHom.map_det, map_sub, map_smul']
+ simp [p, charpoly, charmatrix, AlgHom.map_det, map_sub, map_smul']
have hq : toLaurentAlg M.charpolyRev = q := by
- simp [charpolyRev, AlgHom.map_det, map_sub, map_smul', smul_eq_diagonal_mul]
+ simp [q, charpolyRev, AlgHom.map_det, map_sub, map_smul', smul_eq_diagonal_mul]
suffices t_inv ^ Fintype.card n * p = invert q by
apply toLaurent_injective
rwa [toLaurent_reverse, ← coe_toLaurentAlg, hp, hq, ← involutive_invert.injective.eq_iff,
@@ -348,7 +348,7 @@ lemma reverse_charpoly (M : Matrix n n R) :
← mul_one (Fintype.card n : ℤ), ← T_pow, invert.map_pow, invert_T, mul_comm]
rw [← det_smul, smul_sub, scalar_apply, ← diagonal_smul, Pi.smul_def, smul_eq_mul, ht,
diagonal_one, invert.map_det]
- simp [map_smul', smul_eq_diagonal_mul]
+ simp [t, map_smul', smul_eq_diagonal_mul]
@[simp] lemma eval_charpolyRev :
eval 0 M.charpolyRev = 1 := by
@@ -388,7 +388,7 @@ lemma isNilpotent_charpoly_sub_pow_of_isNilpotent (hM : IsNilpotent M) :
let p : R[X] := M.charpolyRev
have hp : p - 1 = X * (p /ₘ X) := by
conv_lhs => rw [← modByMonic_add_div p monic_X]
- simp [modByMonic_X]
+ simp [p, modByMonic_X]
have : IsNilpotent (p /ₘ X) :=
(Polynomial.isUnit_iff'.mp (isUnit_charpolyRev_of_isNilpotent hM)).2
have aux : (M.charpoly - X ^ (Fintype.card n)).natDegree ≤ M.charpoly.natDegree :=
have
, replace
and suffices
(#10640)
No changes to tactic file, it's just boring fixes throughout the library.
This follows on from #6964.
Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
@@ -341,8 +341,8 @@ lemma reverse_charpoly (M : Matrix n n R) :
simp [charpoly, charmatrix, AlgHom.map_det, map_sub, map_smul']
have hq : toLaurentAlg M.charpolyRev = q := by
simp [charpolyRev, AlgHom.map_det, map_sub, map_smul', smul_eq_diagonal_mul]
- suffices : t_inv ^ Fintype.card n * p = invert q
- · apply toLaurent_injective
+ suffices t_inv ^ Fintype.card n * p = invert q by
+ apply toLaurent_injective
rwa [toLaurent_reverse, ← coe_toLaurentAlg, hp, hq, ← involutive_invert.injective.eq_iff,
invert.map_mul, involutive_invert p, charpoly_natDegree_eq_dim,
← mul_one (Fintype.card n : ℤ), ← T_pow, invert.map_pow, invert_T, mul_comm]
@@ -37,29 +37,24 @@ noncomputable section
universe u v w z
-open Polynomial Matrix BigOperators
+open BigOperators Finset Matrix Polynomial
variable {R : Type u} [CommRing R]
-
variable {n G : Type v} [DecidableEq n] [Fintype n]
-
variable {α β : Type v} [DecidableEq α]
-
-open Finset
-
variable {M : Matrix n n R}
+namespace Matrix
+
theorem charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
(charmatrix M i j).natDegree = ite (i = j) 1 0 := by
by_cases h : i = j <;> simp [h, ← degree_eq_iff_natDegree_eq_of_pos (Nat.succ_pos 0)]
-#align charmatrix_apply_nat_degree charmatrix_apply_natDegree
+#align charmatrix_apply_nat_degree Matrix.charmatrix_apply_natDegree
theorem charmatrix_apply_natDegree_le (i j : n) :
(charmatrix M i j).natDegree ≤ ite (i = j) 1 0 := by
split_ifs with h <;> simp [h, natDegree_X_le]
-#align charmatrix_apply_nat_degree_le charmatrix_apply_natDegree_le
-
-namespace Matrix
+#align charmatrix_apply_nat_degree_le Matrix.charmatrix_apply_natDegree_le
variable (M)
@@ -262,7 +257,7 @@ end Matrix
variable {p : ℕ} [Fact p.Prime]
-theorem matPolyEquiv_eq_x_pow_sub_c {K : Type*} (k : ℕ) [Field K] (M : Matrix n n K) :
+theorem matPolyEquiv_eq_X_pow_sub_C {K : Type*} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
X ^ k - C (M ^ k) := by
-- porting note: `i` and `j` are used later on, but were not mentioned in mathlib3
@@ -280,7 +275,7 @@ theorem matPolyEquiv_eq_x_pow_sub_c {K : Type*} (k : ℕ) [Field K] (M : Matrix
simp only [hij, zero_sub, Matrix.zero_apply, sub_zero, neg_zero, Matrix.one_apply_ne, Ne.def,
not_false_iff]
set_option linter.uppercaseLean3 false in
-#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_x_pow_sub_c
+#align mat_poly_equiv_eq_X_pow_sub_C matPolyEquiv_eq_X_pow_sub_C
namespace Matrix
@@ -298,8 +293,6 @@ theorem pow_eq_aeval_mod_charpoly (M : Matrix n n R) (k : ℕ) :
M ^ k = aeval M (X ^ k %ₘ M.charpoly) := by rw [← aeval_eq_aeval_mod_charpoly, map_pow, aeval_X]
#align matrix.pow_eq_aeval_mod_charpoly Matrix.pow_eq_aeval_mod_charpoly
-end Matrix
-
section Ideal
theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k : ℕ) :
@@ -320,12 +313,10 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
exact h (c i) i
· rw [Nat.succ_eq_one_add, tsub_self_add, pow_zero, Ideal.one_eq_top]
exact Submodule.mem_top
-#align coeff_charpoly_mem_ideal_pow coeff_charpoly_mem_ideal_pow
+#align coeff_charpoly_mem_ideal_pow Matrix.coeff_charpoly_mem_ideal_pow
end Ideal
-namespace Matrix
-
section reverse
open Polynomial
Rename succAbove_below
, succAbove_above
, predAbove_below
and predAbove_Above
to more appropriate things, and vary and extend these results to allow for faster proofs elsewhere.
Co-authored-by: Johan Commelin <johan@commelin.net>
@@ -222,7 +222,7 @@ lemma derivative_det_one_add_X_smul_aux {n} (M : Matrix (Fin n) (Fin n) R) :
simp only [one_apply_ne' hi, eval_zero, mul_zero, zero_add, zero_mul, add_zero]
rw [det_eq_zero_of_column_eq_zero 0, eval_zero, mul_zero]
intro j
- rw [submatrix_apply, Fin.succAbove_below, one_apply_ne]
+ rw [submatrix_apply, Fin.succAbove_of_castSucc_lt, one_apply_ne]
· exact (bne_iff_ne (Fin.succ j) (Fin.castSucc 0)).mp rfl
· rw [Fin.castSucc_zero]; exact lt_of_le_of_ne (Fin.zero_le _) hi.symm
· exact fun H ↦ (H <| Finset.mem_univ _).elim
FunLike
to DFunLike
(#9785)
This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.
This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:
sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -163,7 +163,7 @@ theorem matPolyEquiv_symm_map_eval (M : (Matrix n n R)[X]) (r : R) :
suffices ((aeval r).mapMatrix.comp matPolyEquiv.symm.toAlgHom : (Matrix n n R)[X] →ₐ[R] _) =
(eval₂AlgHom' (AlgHom.id R _) (scalar n r)
fun x => (scalar_commute _ (Commute.all _) _).symm) from
- FunLike.congr_fun this M
+ DFunLike.congr_fun this M
ext : 1
· ext M : 1
simp [Function.comp]
cases'
(#9171)
I literally went through and regex'd some uses of cases'
, replacing them with rcases
; this is meant to be a low effort PR as I hope that tools can do this in the future.
rcases
is an easier replacement than cases
, though with better tools we could in future do a second pass converting simple rcases
added here (and existing ones) to cases
.
@@ -363,7 +363,7 @@ lemma reverse_charpoly (M : Matrix n n R) :
eval 0 M.charpolyRev = 1 := by
rw [charpolyRev, ← coe_evalRingHom, RingHom.map_det, ← det_one (R := R) (n := n)]
have : (1 - (X : R[X]) • M.map C).map (eval 0) = 1 := by
- ext i j; cases' eq_or_ne i j with hij hij <;> simp [hij]
+ ext i j; rcases eq_or_ne i j with hij | hij <;> simp [hij]
congr
@[simp] lemma coeff_charpolyRev_eq_neg_trace (M : Matrix n n R) :
@@ -6,6 +6,7 @@ Authors: Aaron Anderson, Jalex Stark
import Mathlib.Data.Polynomial.Expand
import Mathlib.Data.Polynomial.Laurent
import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
+import Mathlib.LinearAlgebra.Matrix.Reindex
import Mathlib.RingTheory.Polynomial.Nilpotent
#align_import linear_algebra.matrix.charpoly.coeff from "leanprover-community/mathlib"@"9745b093210e9dac443af24da9dba0f9e2b6c912"
@@ -194,6 +195,69 @@ theorem det_eq_sign_charpoly_coeff (M : Matrix n n R) :
simp
#align matrix.det_eq_sign_charpoly_coeff Matrix.det_eq_sign_charpoly_coeff
+lemma eval_det_add_X_smul (A : Matrix n n R[X]) (M : Matrix n n R) :
+ (det (A + (X : R[X]) • M.map C)).eval 0 = (det A).eval 0 := by
+ simp only [eval_det, map_zero, map_add, eval_add, Algebra.smul_def, _root_.map_mul]
+ simp only [Algebra.algebraMap_eq_smul_one, matPolyEquiv_smul_one, map_X, X_mul, eval_mul_X,
+ mul_zero, add_zero]
+
+lemma derivative_det_one_add_X_smul_aux {n} (M : Matrix (Fin n) (Fin n) R) :
+ (derivative <| det (1 + (X : R[X]) • M.map C)).eval 0 = trace M := by
+ induction n with
+ | zero => simp
+ | succ n IH =>
+ rw [det_succ_row_zero, map_sum, eval_finset_sum]
+ simp only [add_apply, smul_apply, map_apply, smul_eq_mul, X_mul_C, submatrix_add,
+ submatrix_smul, Pi.add_apply, Pi.smul_apply, submatrix_map, derivative_mul, map_add,
+ derivative_C, zero_mul, derivative_X, mul_one, zero_add, eval_add, eval_mul, eval_C, eval_X,
+ mul_zero, add_zero, eval_det_add_X_smul, eval_pow, eval_neg, eval_one]
+ rw [Finset.sum_eq_single 0]
+ · simp only [Fin.val_zero, pow_zero, derivative_one, eval_zero, one_apply_eq, eval_one,
+ mul_one, zero_add, one_mul, Fin.succAbove_zero, submatrix_one _ (Fin.succ_injective _),
+ det_one, IH, trace_submatrix_succ]
+ · intro i _ hi
+ cases n with
+ | zero => exact (hi (Subsingleton.elim i 0)).elim
+ | succ n =>
+ simp only [one_apply_ne' hi, eval_zero, mul_zero, zero_add, zero_mul, add_zero]
+ rw [det_eq_zero_of_column_eq_zero 0, eval_zero, mul_zero]
+ intro j
+ rw [submatrix_apply, Fin.succAbove_below, one_apply_ne]
+ · exact (bne_iff_ne (Fin.succ j) (Fin.castSucc 0)).mp rfl
+ · rw [Fin.castSucc_zero]; exact lt_of_le_of_ne (Fin.zero_le _) hi.symm
+ · exact fun H ↦ (H <| Finset.mem_univ _).elim
+
+/-- The derivative of `det (1 + M X)` at `0` is the trace of `M`. -/
+lemma derivative_det_one_add_X_smul (M : Matrix n n R) :
+ (derivative <| det (1 + (X : R[X]) • M.map C)).eval 0 = trace M := by
+ let e := Matrix.reindexLinearEquiv R R (Fintype.equivFin n) (Fintype.equivFin n)
+ rw [← Matrix.det_reindexLinearEquiv_self R[X] (Fintype.equivFin n)]
+ convert derivative_det_one_add_X_smul_aux (e M)
+ · ext; simp
+ · delta trace
+ rw [← (Fintype.equivFin n).symm.sum_comp]
+ rfl
+
+lemma coeff_det_one_add_X_smul_one (M : Matrix n n R) :
+ (det (1 + (X : R[X]) • M.map C)).coeff 1 = trace M := by
+ simp only [← derivative_det_one_add_X_smul, ← coeff_zero_eq_eval_zero,
+ coeff_derivative, zero_add, Nat.cast_zero, mul_one]
+
+lemma det_one_add_X_smul (M : Matrix n n R) :
+ det (1 + (X : R[X]) • M.map C) =
+ (1 : R[X]) + trace M • X + (det (1 + (X : R[X]) • M.map C)).divX.divX * X ^ 2 := by
+ rw [Algebra.smul_def (trace M), ← C_eq_algebraMap, pow_two, ← mul_assoc, add_assoc,
+ ← add_mul, ← coeff_det_one_add_X_smul_one, ← coeff_divX, add_comm (C _), divX_mul_X_add,
+ add_comm (1 : R[X]), ← C.map_one]
+ convert (divX_mul_X_add _).symm
+ rw [coeff_zero_eq_eval_zero, eval_det_add_X_smul, det_one, eval_one]
+
+/-- The first two terms of the taylor expansion of `det (1 + r • M)` at `r = 0`. -/
+lemma det_one_add_smul (r : R) (M : Matrix n n R) :
+ det (1 + r • M) =
+ 1 + trace M * r + (det (1 + (X : R[X]) • M.map C)).divX.divX.eval r * r ^ 2 := by
+ simpa [eval_det, ← smul_eq_mul_diagonal] using congr_arg (eval r) (Matrix.det_one_add_X_smul M)
+
end Matrix
variable {p : ℕ} [Fact p.Prime]
@@ -250,7 +250,7 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
apply coeff_prod_mem_ideal_pow_tsub
rintro i - (_ | k)
· rw [Nat.zero_eq] -- porting note: `rw [Nat.zero_eq]` was not present
- rw [tsub_zero, pow_one, charmatrix_apply, coeff_sub, ←smul_one_eq_diagonal, smul_apply,
+ rw [tsub_zero, pow_one, charmatrix_apply, coeff_sub, ← smul_one_eq_diagonal, smul_apply,
smul_eq_mul, coeff_X_mul_zero, coeff_C_zero, zero_sub]
apply neg_mem -- porting note: was `rw [neg_mem_iff]`, but Lean could not synth `NegMemClass`
exact h (c i) i
This changes the defeq from scalar a = a • 1
to scalar a = diagonal fun _ => a
, which has the nice bonus of making algebraMap_eq_diagonal
true by rfl
.
As a result, we need a new smul_one_eq_diagonal
lemma to rewrite diagonal fun _ => a
back into a • 1
, along with some variants for convenience.
In the long term we could generalize this to non-unital rings, now that it needs no 1
.
@@ -160,7 +160,8 @@ theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
theorem matPolyEquiv_symm_map_eval (M : (Matrix n n R)[X]) (r : R) :
(matPolyEquiv.symm M).map (eval r) = M.eval (scalar n r) := by
suffices ((aeval r).mapMatrix.comp matPolyEquiv.symm.toAlgHom : (Matrix n n R)[X] →ₐ[R] _) =
- (eval₂AlgHom' (AlgHom.id R _) (scalar n r) fun x => (scalar.commute _ _).symm) from
+ (eval₂AlgHom' (AlgHom.id R _) (scalar n r)
+ fun x => (scalar_commute _ (Commute.all _) _).symm) from
FunLike.congr_fun this M
ext : 1
· ext M : 1
@@ -249,7 +250,8 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
apply coeff_prod_mem_ideal_pow_tsub
rintro i - (_ | k)
· rw [Nat.zero_eq] -- porting note: `rw [Nat.zero_eq]` was not present
- rw [tsub_zero, pow_one, charmatrix_apply, coeff_sub, coeff_X_mul_zero, coeff_C_zero, zero_sub]
+ rw [tsub_zero, pow_one, charmatrix_apply, coeff_sub, ←smul_one_eq_diagonal, smul_apply,
+ smul_eq_mul, coeff_X_mul_zero, coeff_C_zero, zero_sub]
apply neg_mem -- porting note: was `rw [neg_mem_iff]`, but Lean could not synth `NegMemClass`
exact h (c i) i
· rw [Nat.succ_eq_one_add, tsub_self_add, pow_zero, Ideal.one_eq_top]
@@ -283,14 +285,15 @@ lemma reverse_charpoly (M : Matrix n n R) :
have hp : toLaurentAlg M.charpoly = p := by
simp [charpoly, charmatrix, AlgHom.map_det, map_sub, map_smul']
have hq : toLaurentAlg M.charpolyRev = q := by
- simp [charpolyRev, AlgHom.map_det, map_sub, map_smul']
+ simp [charpolyRev, AlgHom.map_det, map_sub, map_smul', smul_eq_diagonal_mul]
suffices : t_inv ^ Fintype.card n * p = invert q
· apply toLaurent_injective
rwa [toLaurent_reverse, ← coe_toLaurentAlg, hp, hq, ← involutive_invert.injective.eq_iff,
invert.map_mul, involutive_invert p, charpoly_natDegree_eq_dim,
← mul_one (Fintype.card n : ℤ), ← T_pow, invert.map_pow, invert_T, mul_comm]
- rw [← det_smul, smul_sub, coe_scalar, ← smul_assoc, smul_eq_mul, ht, one_smul, invert.map_det]
- simp [map_smul']
+ rw [← det_smul, smul_sub, scalar_apply, ← diagonal_smul, Pi.smul_def, smul_eq_mul, ht,
+ diagonal_one, invert.map_det]
+ simp [map_smul', smul_eq_diagonal_mul]
@[simp] lemma eval_charpolyRev :
eval 0 M.charpolyRev = 1 := by
I've also got a change to make this required, but I'd like to land this first.
@@ -50,7 +50,7 @@ variable {M : Matrix n n R}
theorem charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
(charmatrix M i j).natDegree = ite (i = j) 1 0 := by
- by_cases i = j <;> simp [h, ← degree_eq_iff_natDegree_eq_of_pos (Nat.succ_pos 0)]
+ by_cases h : i = j <;> simp [h, ← degree_eq_iff_natDegree_eq_of_pos (Nat.succ_pos 0)]
#align charmatrix_apply_nat_degree charmatrix_apply_natDegree
theorem charmatrix_apply_natDegree_le (i j : n) :
This adds an AlgHom
version of eval₂RingHom'
, and a stronger ext lemma for noncommutative algebras.
This is a follow-up to leanprover-community/mathlib#9250
This better ext lemma golfs away most of a nasty proof.
@@ -157,27 +157,24 @@ theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
simp_rw [diag_apply]
#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeff
+theorem matPolyEquiv_symm_map_eval (M : (Matrix n n R)[X]) (r : R) :
+ (matPolyEquiv.symm M).map (eval r) = M.eval (scalar n r) := by
+ suffices ((aeval r).mapMatrix.comp matPolyEquiv.symm.toAlgHom : (Matrix n n R)[X] →ₐ[R] _) =
+ (eval₂AlgHom' (AlgHom.id R _) (scalar n r) fun x => (scalar.commute _ _).symm) from
+ FunLike.congr_fun this M
+ ext : 1
+ · ext M : 1
+ simp [Function.comp]
+ · simp [smul_eq_diagonal_mul]
+
+theorem matPolyEquiv_eval_eq_map (M : Matrix n n R[X]) (r : R) :
+ (matPolyEquiv M).eval (scalar n r) = M.map (eval r) := by
+ simpa only [AlgEquiv.symm_apply_apply] using (matPolyEquiv_symm_map_eval (matPolyEquiv M) r).symm
+
-- I feel like this should use `Polynomial.algHom_eval₂_algebraMap`
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
- (matPolyEquiv M).eval ((scalar n) r) i j = (M i j).eval r := by
- unfold Polynomial.eval
- rw [Polynomial.eval₂_def, Polynomial.eval₂_def] -- porting note: was `unfold eval₂`
- trans Polynomial.sum (matPolyEquiv M) fun (e : ℕ) (a : Matrix n n R) => (a * (scalar n) r ^ e) i j
- · unfold Polynomial.sum
- simp only [sum_apply]
- dsimp
- · simp_rw [← RingHom.map_pow, ← (scalar.commute _ _).eq]
- simp only [coe_scalar, Matrix.one_mul, RingHom.id_apply, Pi.smul_apply, smul_eq_mul,
- Algebra.smul_mul_assoc]
- -- porting note: the `have` was present and unused also in the original
- --have h : ∀ x : ℕ, (fun (e : ℕ) (a : R) => r ^ e * a) x 0 = 0 := by simp
- simp only [Polynomial.sum, matPolyEquiv_coeff_apply, mul_comm]
- simp only [smul_apply, matPolyEquiv_coeff_apply, smul_eq_mul] -- porting note: added
- apply (Finset.sum_subset (support_subset_support_matPolyEquiv _ _ _) _).symm
- intro n _hn h'n
- rw [not_mem_support_iff] at h'n
- simp only [h'n, zero_mul]
- simp only [mul_zero] -- porting note: added
+ (matPolyEquiv M).eval (scalar n r) i j = (M i j).eval r := by
+ rw [matPolyEquiv_eval_eq_map, map_apply]
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
theorem eval_det (M : Matrix n n R[X]) (r : R) :
Adds degree_sub_C, natDegree_sub_C
, analogous to ..._add_C
.
Also relocates C_neg
and C_sub
to Basic.lean
(where C_add
is) so that the new lemmas can be in the same file as their add
counterparts.
@@ -55,7 +55,7 @@ theorem charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
theorem charmatrix_apply_natDegree_le (i j : n) :
(charmatrix M i j).natDegree ≤ ite (i = j) 1 0 := by
- split_ifs with h <;> simp [h, natDegree_X_sub_C_le]
+ split_ifs with h <;> simp [h, natDegree_X_le]
#align charmatrix_apply_nat_degree_le charmatrix_apply_natDegree_le
namespace Matrix
@@ -305,10 +305,11 @@ lemma reverse_charpoly (M : Matrix n n R) :
@[simp] lemma coeff_charpolyRev_eq_neg_trace (M : Matrix n n R) :
coeff M.charpolyRev 1 = - trace M := by
nontriviality R
- cases isEmpty_or_nonempty n; simp [charpolyRev, coeff_one]
- simp [trace_eq_neg_charpoly_coeff M, ← M.reverse_charpoly, nextCoeff]
+ cases isEmpty_or_nonempty n
+ · simp [charpolyRev, coeff_one]
+ · simp [trace_eq_neg_charpoly_coeff M, ← M.reverse_charpoly, nextCoeff]
-lemma isUnit_charpolyRev_of_IsNilpotent (hM : IsNilpotent M) :
+lemma isUnit_charpolyRev_of_isNilpotent (hM : IsNilpotent M) :
IsUnit M.charpolyRev := by
obtain ⟨k, hk⟩ := hM
replace hk : 1 - (X : R[X]) • M.map C ∣ 1 := by
@@ -320,9 +321,10 @@ lemma isUnit_charpolyRev_of_IsNilpotent (hM : IsNilpotent M) :
lemma isNilpotent_trace_of_isNilpotent (hM : IsNilpotent M) :
IsNilpotent (trace M) := by
- cases isEmpty_or_nonempty n; simp
+ cases isEmpty_or_nonempty n
+ · simp
suffices IsNilpotent (coeff (charpolyRev M) 1) by simpa using this
- exact (isUnit_iff_coeff_isUnit_isNilpotent.mp (isUnit_charpolyRev_of_IsNilpotent hM)).2
+ exact (isUnit_iff_coeff_isUnit_isNilpotent.mp (isUnit_charpolyRev_of_isNilpotent hM)).2
_ one_ne_zero
lemma isNilpotent_charpoly_sub_pow_of_isNilpotent (hM : IsNilpotent M) :
@@ -333,7 +335,7 @@ lemma isNilpotent_charpoly_sub_pow_of_isNilpotent (hM : IsNilpotent M) :
conv_lhs => rw [← modByMonic_add_div p monic_X]
simp [modByMonic_X]
have : IsNilpotent (p /ₘ X) :=
- (Polynomial.isUnit_iff'.mp (isUnit_charpolyRev_of_IsNilpotent hM)).2
+ (Polynomial.isUnit_iff'.mp (isUnit_charpolyRev_of_isNilpotent hM)).2
have aux : (M.charpoly - X ^ (Fintype.card n)).natDegree ≤ M.charpoly.natDegree :=
le_trans (natDegree_sub_le _ _) (by simp)
rw [← isNilpotent_reflect_iff aux, reflect_sub, ← reverse, M.reverse_charpoly]
@@ -74,8 +74,7 @@ theorem charpoly_sub_diagonal_degree_lt :
apply Submodule.smul_mem (degreeLT R (Fintype.card n - 1)) ↑↑(Equiv.Perm.sign c)
rw [mem_degreeLT]
apply lt_of_le_of_lt degree_le_natDegree _
- rw [Nat.cast_withBot, Nat.cast_withBot] -- porting note: added
- rw [WithBot.coe_lt_coe]
+ rw [Nat.cast_lt]
apply lt_of_le_of_lt _ (Equiv.Perm.fixed_point_card_lt_of_ne_one (ne_of_mem_erase hc))
apply le_trans (Polynomial.natDegree_prod_le univ fun i : n => charmatrix M (c i) i) _
rw [card_eq_sum_ones]; rw [sum_filter]; apply sum_le_sum
@@ -88,8 +87,7 @@ theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤
apply eq_of_sub_eq_zero; rw [← coeff_sub]
apply Polynomial.coeff_eq_zero_of_degree_lt
apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) ?_
- rw [Nat.cast_withBot, Nat.cast_withBot] -- porting note: added
- rw [WithBot.coe_le_coe]; apply h
+ rw [Nat.cast_le]; apply h
#align matrix.charpoly_coeff_eq_prod_coeff_of_le Matrix.charpoly_coeff_eq_prod_coeff_of_le
theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1 := by
@@ -119,8 +117,7 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
exact h1
rw [h1]
apply lt_trans (charpoly_sub_diagonal_degree_lt M)
- rw [Nat.cast_withBot, Nat.cast_withBot] -- porting note: added
- rw [WithBot.coe_lt_coe]
+ rw [Nat.cast_lt]
rw [← Nat.pred_eq_sub_one]
apply Nat.pred_lt
apply h
@@ -146,8 +143,7 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic := by
rw [← neg_sub]
rw [degree_neg]
apply lt_trans (charpoly_sub_diagonal_degree_lt M)
- rw [Nat.cast_withBot, Nat.cast_withBot] -- porting note: added
- rw [WithBot.coe_lt_coe]
+ rw [Nat.cast_lt]
rw [← Nat.pred_eq_sub_one]
apply Nat.pred_lt
apply h
@@ -4,8 +4,9 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson, Jalex Stark
-/
import Mathlib.Data.Polynomial.Expand
-import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
import Mathlib.Data.Polynomial.Laurent
+import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
+import Mathlib.RingTheory.Polynomial.Nilpotent
#align_import linear_algebra.matrix.charpoly.coeff from "leanprover-community/mathlib"@"9745b093210e9dac443af24da9dba0f9e2b6c912"
@@ -23,6 +24,7 @@ We give methods for computing coefficients of the characteristic polynomial.
- `Matrix.trace_eq_neg_charpoly_coeff` proves that the trace is the negative of the (d-1)th
coefficient of the characteristic polynomial, where d is the dimension of the matrix.
For a nonzero ring, this is the second-highest coefficient.
+- `Matrix.charpolyRev` the reverse of the characteristic polynomial.
- `Matrix.reverse_charpoly` characterises the reverse of the characteristic polynomial.
-/
@@ -124,7 +126,7 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
apply h
#align matrix.charpoly_degree_eq_dim Matrix.charpoly_degree_eq_dim
-theorem charpoly_natDegree_eq_dim [Nontrivial R] (M : Matrix n n R) :
+@[simp] theorem charpoly_natDegree_eq_dim [Nontrivial R] (M : Matrix n n R) :
M.charpoly.natDegree = Fintype.card n :=
natDegree_eq_of_degree_eq_some (charpoly_degree_eq_dim M)
#align matrix.charpoly_nat_degree_eq_dim Matrix.charpoly_natDegree_eq_dim
@@ -151,6 +153,7 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic := by
apply h
#align matrix.charpoly_monic Matrix.charpoly_monic
+/-- See also `Matrix.coeff_charpolyRev_eq_neg_trace`. -/
theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
trace M = -M.charpoly.coeff (Fintype.card n - 1) := by
rw [charpoly_coeff_eq_prod_coeff_of_le _ le_rfl, Fintype.card,
@@ -262,28 +265,32 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
end Ideal
+namespace Matrix
+
section reverse
open Polynomial
open LaurentPolynomial hiding C
-/-- The right hand side of the equality in this lemma statement is sometimes called the
-"characteristic power series" of a matrix.
+/-- The reverse of the characteristic polynomial of a matrix.
It has some advantages over the characteristic polynomial, including the fact that it can be
-extended to infinite dimensions (for appropriate operators). -/
-lemma Matrix.reverse_charpoly (M : Matrix n n R) :
- M.charpoly.reverse = det (1 - (X : R[X]) • C.mapMatrix M) := by
+extended to infinite dimensions (for appropriate operators). In such settings it is known as the
+"characteristic power series". -/
+def charpolyRev (M : Matrix n n R) : R[X] := det (1 - (X : R[X]) • M.map C)
+
+lemma reverse_charpoly (M : Matrix n n R) :
+ M.charpoly.reverse = M.charpolyRev := by
nontriviality R
let t : R[T;T⁻¹] := T 1
let t_inv : R[T;T⁻¹] := T (-1)
- let p : R[T;T⁻¹] := det (scalar n t - LaurentPolynomial.C.mapMatrix M)
- let q : R[T;T⁻¹] := det (1 - scalar n t * LaurentPolynomial.C.mapMatrix M)
+ let p : R[T;T⁻¹] := det (scalar n t - M.map LaurentPolynomial.C)
+ let q : R[T;T⁻¹] := det (1 - scalar n t * M.map LaurentPolynomial.C)
have ht : t_inv * t = 1 := by rw [← T_add, add_left_neg, T_zero]
have hp : toLaurentAlg M.charpoly = p := by
simp [charpoly, charmatrix, AlgHom.map_det, map_sub, map_smul']
- have hq : toLaurentAlg (det (1 - (X : R[X]) • C.mapMatrix M)) = q := by
- simp [AlgHom.map_det, map_sub, map_smul']
+ have hq : toLaurentAlg M.charpolyRev = q := by
+ simp [charpolyRev, AlgHom.map_det, map_sub, map_smul']
suffices : t_inv ^ Fintype.card n * p = invert q
· apply toLaurent_injective
rwa [toLaurent_reverse, ← coe_toLaurentAlg, hp, hq, ← involutive_invert.injective.eq_iff,
@@ -292,4 +299,50 @@ lemma Matrix.reverse_charpoly (M : Matrix n n R) :
rw [← det_smul, smul_sub, coe_scalar, ← smul_assoc, smul_eq_mul, ht, one_smul, invert.map_det]
simp [map_smul']
+@[simp] lemma eval_charpolyRev :
+ eval 0 M.charpolyRev = 1 := by
+ rw [charpolyRev, ← coe_evalRingHom, RingHom.map_det, ← det_one (R := R) (n := n)]
+ have : (1 - (X : R[X]) • M.map C).map (eval 0) = 1 := by
+ ext i j; cases' eq_or_ne i j with hij hij <;> simp [hij]
+ congr
+
+@[simp] lemma coeff_charpolyRev_eq_neg_trace (M : Matrix n n R) :
+ coeff M.charpolyRev 1 = - trace M := by
+ nontriviality R
+ cases isEmpty_or_nonempty n; simp [charpolyRev, coeff_one]
+ simp [trace_eq_neg_charpoly_coeff M, ← M.reverse_charpoly, nextCoeff]
+
+lemma isUnit_charpolyRev_of_IsNilpotent (hM : IsNilpotent M) :
+ IsUnit M.charpolyRev := by
+ obtain ⟨k, hk⟩ := hM
+ replace hk : 1 - (X : R[X]) • M.map C ∣ 1 := by
+ convert one_sub_dvd_one_sub_pow ((X : R[X]) • M.map C) k
+ rw [← C.mapMatrix_apply, smul_pow, ← map_pow, hk, map_zero, smul_zero, sub_zero]
+ apply isUnit_of_dvd_one
+ rw [← det_one (R := R[X]) (n := n)]
+ exact map_dvd detMonoidHom hk
+
+lemma isNilpotent_trace_of_isNilpotent (hM : IsNilpotent M) :
+ IsNilpotent (trace M) := by
+ cases isEmpty_or_nonempty n; simp
+ suffices IsNilpotent (coeff (charpolyRev M) 1) by simpa using this
+ exact (isUnit_iff_coeff_isUnit_isNilpotent.mp (isUnit_charpolyRev_of_IsNilpotent hM)).2
+ _ one_ne_zero
+
+lemma isNilpotent_charpoly_sub_pow_of_isNilpotent (hM : IsNilpotent M) :
+ IsNilpotent (M.charpoly - X ^ (Fintype.card n)) := by
+ nontriviality R
+ let p : R[X] := M.charpolyRev
+ have hp : p - 1 = X * (p /ₘ X) := by
+ conv_lhs => rw [← modByMonic_add_div p monic_X]
+ simp [modByMonic_X]
+ have : IsNilpotent (p /ₘ X) :=
+ (Polynomial.isUnit_iff'.mp (isUnit_charpolyRev_of_IsNilpotent hM)).2
+ have aux : (M.charpoly - X ^ (Fintype.card n)).natDegree ≤ M.charpoly.natDegree :=
+ le_trans (natDegree_sub_le _ _) (by simp)
+ rw [← isNilpotent_reflect_iff aux, reflect_sub, ← reverse, M.reverse_charpoly]
+ simpa [hp]
+
end reverse
+
+end Matrix
@@ -5,6 +5,7 @@ Authors: Aaron Anderson, Jalex Stark
-/
import Mathlib.Data.Polynomial.Expand
import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
+import Mathlib.Data.Polynomial.Laurent
#align_import linear_algebra.matrix.charpoly.coeff from "leanprover-community/mathlib"@"9745b093210e9dac443af24da9dba0f9e2b6c912"
@@ -22,6 +23,7 @@ We give methods for computing coefficients of the characteristic polynomial.
- `Matrix.trace_eq_neg_charpoly_coeff` proves that the trace is the negative of the (d-1)th
coefficient of the characteristic polynomial, where d is the dimension of the matrix.
For a nonzero ring, this is the second-highest coefficient.
+- `Matrix.reverse_charpoly` characterises the reverse of the characteristic polynomial.
-/
@@ -259,3 +261,35 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
#align coeff_charpoly_mem_ideal_pow coeff_charpoly_mem_ideal_pow
end Ideal
+
+section reverse
+
+open Polynomial
+open LaurentPolynomial hiding C
+
+/-- The right hand side of the equality in this lemma statement is sometimes called the
+"characteristic power series" of a matrix.
+
+It has some advantages over the characteristic polynomial, including the fact that it can be
+extended to infinite dimensions (for appropriate operators). -/
+lemma Matrix.reverse_charpoly (M : Matrix n n R) :
+ M.charpoly.reverse = det (1 - (X : R[X]) • C.mapMatrix M) := by
+ nontriviality R
+ let t : R[T;T⁻¹] := T 1
+ let t_inv : R[T;T⁻¹] := T (-1)
+ let p : R[T;T⁻¹] := det (scalar n t - LaurentPolynomial.C.mapMatrix M)
+ let q : R[T;T⁻¹] := det (1 - scalar n t * LaurentPolynomial.C.mapMatrix M)
+ have ht : t_inv * t = 1 := by rw [← T_add, add_left_neg, T_zero]
+ have hp : toLaurentAlg M.charpoly = p := by
+ simp [charpoly, charmatrix, AlgHom.map_det, map_sub, map_smul']
+ have hq : toLaurentAlg (det (1 - (X : R[X]) • C.mapMatrix M)) = q := by
+ simp [AlgHom.map_det, map_sub, map_smul']
+ suffices : t_inv ^ Fintype.card n * p = invert q
+ · apply toLaurent_injective
+ rwa [toLaurent_reverse, ← coe_toLaurentAlg, hp, hq, ← involutive_invert.injective.eq_iff,
+ invert.map_mul, involutive_invert p, charpoly_natDegree_eq_dim,
+ ← mul_one (Fintype.card n : ℤ), ← T_pow, invert.map_pow, invert_T, mul_comm]
+ rw [← det_smul, smul_sub, coe_scalar, ← smul_assoc, smul_eq_mul, ht, one_smul, invert.map_det]
+ simp [map_smul']
+
+end reverse
MulZeroClass.
in mul_zero
/zero_mul
(#6682)
Search&replace MulZeroClass.mul_zero
-> mul_zero
, MulZeroClass.zero_mul
-> zero_mul
.
These were introduced by Mathport, as the full name of mul_zero
is actually MulZeroClass.mul_zero
(it's exported with the short name).
@@ -175,7 +175,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
apply (Finset.sum_subset (support_subset_support_matPolyEquiv _ _ _) _).symm
intro n _hn h'n
rw [not_mem_support_iff] at h'n
- simp only [h'n, MulZeroClass.zero_mul]
+ simp only [h'n, zero_mul]
simp only [mul_zero] -- porting note: added
#align matrix.mat_poly_equiv_eval Matrix.matPolyEquiv_eval
⬝
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).
@@ -166,7 +166,7 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
simp only [sum_apply]
dsimp
· simp_rw [← RingHom.map_pow, ← (scalar.commute _ _).eq]
- simp only [coe_scalar, Matrix.one_mul, RingHom.id_apply, Pi.smul_apply, smul_eq_mul, mul_eq_mul,
+ simp only [coe_scalar, Matrix.one_mul, RingHom.id_apply, Pi.smul_apply, smul_eq_mul,
Algebra.smul_mul_assoc]
-- porting note: the `have` was present and unused also in the original
--have h : ∀ x : ℕ, (fun (e : ℕ) (a : R) => r ^ e * a) x 0 = 0 := by simp
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -199,7 +199,7 @@ end Matrix
variable {p : ℕ} [Fact p.Prime]
-theorem matPolyEquiv_eq_x_pow_sub_c {K : Type _} (k : ℕ) [Field K] (M : Matrix n n K) :
+theorem matPolyEquiv_eq_x_pow_sub_c {K : Type*} (k : ℕ) [Field K] (M : Matrix n n K) :
matPolyEquiv ((expand K k : K[X] →+* K[X]).mapMatrix (charmatrix (M ^ k))) =
X ^ k - C (M ^ k) := by
-- porting note: `i` and `j` are used later on, but were not mentioned in mathlib3
@@ -2,15 +2,12 @@
Copyright (c) 2020 Aaron Anderson, Jalex Stark. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Aaron Anderson, Jalex Stark
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.charpoly.coeff
-! leanprover-community/mathlib commit 9745b093210e9dac443af24da9dba0f9e2b6c912
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.Polynomial.Expand
import Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
+#align_import linear_algebra.matrix.charpoly.coeff from "leanprover-community/mathlib"@"9745b093210e9dac443af24da9dba0f9e2b6c912"
+
/-!
# Characteristic polynomials
∑'
precedence (#5615)
∑
, ∏
and variants).([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤])
replaced by $1 $2 $3
@@ -249,7 +249,7 @@ theorem coeff_charpoly_mem_ideal_pow {I : Ideal R} (h : ∀ i j, M i j ∈ I) (k
apply sum_mem
rintro c -
rw [coeff_smul, Submodule.smul_mem_iff']
- have : (∑ x : n, 1) = Fintype.card n := by rw [Finset.sum_const, card_univ, smul_eq_mul, mul_one]
+ have : ∑ x : n, 1 = Fintype.card n := by rw [Finset.sum_const, card_univ, smul_eq_mul, mul_one]
rw [← this]
apply coeff_prod_mem_ideal_pow_tsub
rintro i - (_ | k)
@@ -35,9 +35,7 @@ noncomputable section
universe u v w z
-open Polynomial Matrix
-
-open BigOperators Polynomial
+open Polynomial Matrix BigOperators
variable {R : Type u} [CommRing R]
@@ -54,8 +52,9 @@ theorem charmatrix_apply_natDegree [Nontrivial R] (i j : n) :
by_cases i = j <;> simp [h, ← degree_eq_iff_natDegree_eq_of_pos (Nat.succ_pos 0)]
#align charmatrix_apply_nat_degree charmatrix_apply_natDegree
-theorem charmatrix_apply_natDegree_le (i j : n) : (charmatrix M i j).natDegree ≤ ite (i = j) 1 0 :=
- by split_ifs with h <;> simp [h, natDegree_X_sub_C_le]
+theorem charmatrix_apply_natDegree_le (i j : n) :
+ (charmatrix M i j).natDegree ≤ ite (i = j) 1 0 := by
+ split_ifs with h <;> simp [h, natDegree_X_sub_C_le]
#align charmatrix_apply_nat_degree_le charmatrix_apply_natDegree_le
namespace Matrix
@@ -68,21 +67,25 @@ theorem charpoly_sub_diagonal_degree_lt :
sum_insert (not_mem_erase (Equiv.refl n) univ), add_comm]
simp only [charmatrix_apply_eq, one_mul, Equiv.Perm.sign_refl, id.def, Int.cast_one,
Units.val_one, add_sub_cancel, Equiv.coe_refl]
- rw [← mem_degreeLT]; apply Submodule.sum_mem (degreeLT R (Fintype.card n - 1))
+ rw [← mem_degreeLT]
+ apply Submodule.sum_mem (degreeLT R (Fintype.card n - 1))
intro c hc; rw [← C_eq_int_cast, C_mul']
apply Submodule.smul_mem (degreeLT R (Fintype.card n - 1)) ↑↑(Equiv.Perm.sign c)
- rw [mem_degreeLT]; apply lt_of_le_of_lt degree_le_natDegree _
+ rw [mem_degreeLT]
+ apply lt_of_le_of_lt degree_le_natDegree _
rw [Nat.cast_withBot, Nat.cast_withBot] -- porting note: added
rw [WithBot.coe_lt_coe]
apply lt_of_le_of_lt _ (Equiv.Perm.fixed_point_card_lt_of_ne_one (ne_of_mem_erase hc))
apply le_trans (Polynomial.natDegree_prod_le univ fun i : n => charmatrix M (c i) i) _
rw [card_eq_sum_ones]; rw [sum_filter]; apply sum_le_sum
- intros ; apply charmatrix_apply_natDegree_le
+ intros
+ apply charmatrix_apply_natDegree_le
#align matrix.charpoly_sub_diagonal_degree_lt Matrix.charpoly_sub_diagonal_degree_lt
theorem charpoly_coeff_eq_prod_coeff_of_le {k : ℕ} (h : Fintype.card n - 1 ≤ k) :
M.charpoly.coeff k = (∏ i : n, (X - C (M i i))).coeff k := by
- apply eq_of_sub_eq_zero; rw [← coeff_sub]; apply Polynomial.coeff_eq_zero_of_degree_lt
+ apply eq_of_sub_eq_zero; rw [← coeff_sub]
+ apply Polynomial.coeff_eq_zero_of_degree_lt
apply lt_of_lt_of_le (charpoly_sub_diagonal_degree_lt M) ?_
rw [Nat.cast_withBot, Nat.cast_withBot] -- porting note: added
rw [WithBot.coe_le_coe]; apply h
@@ -97,7 +100,7 @@ theorem det_of_card_zero (h : Fintype.card n = 0) (M : Matrix n n R) : M.det = 1
theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
M.charpoly.degree = Fintype.card n := by
- by_cases Fintype.card n = 0
+ by_cases h : Fintype.card n = 0
· rw [h]
unfold charpoly
rw [det_of_card_zero]
@@ -106,13 +109,9 @@ theorem charpoly_degree_eq_dim [Nontrivial R] (M : Matrix n n R) :
rw [← sub_add_cancel M.charpoly (∏ i : n, (X - C (M i i)))]
-- porting note: added `↑` in front of `Fintype.card n`
have h1 : (∏ i : n, (X - C (M i i))).degree = ↑(Fintype.card n) := by
- rw [degree_eq_iff_natDegree_eq_of_pos]
- swap
- apply Nat.pos_of_ne_zero h
- rw [natDegree_prod']
+ rw [degree_eq_iff_natDegree_eq_of_pos (Nat.pos_of_ne_zero h), natDegree_prod']
simp_rw [natDegree_X_sub_C]
- unfold Fintype.card
- simp
+ rw [← Finset.card_univ, sum_const, smul_eq_mul, mul_one]
simp_rw [(monic_X_sub_C _).leadingCoeff]
simp
rw [degree_add_eq_right_of_degree_lt]
@@ -133,7 +132,7 @@ theorem charpoly_natDegree_eq_dim [Nontrivial R] (M : Matrix n n R) :
theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic := by
nontriviality R -- porting note: was simply `nontriviality`
- by_cases Fintype.card n = 0
+ by_cases h : Fintype.card n = 0
· rw [charpoly, det_of_card_zero h]
apply monic_one
have mon : (∏ i : n, (X - C (M i i))).Monic := by
@@ -141,8 +140,7 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic := by
simp [monic_X_sub_C]
rw [← sub_add_cancel (∏ i : n, (X - C (M i i))) M.charpoly] at mon
rw [Monic] at *
- rw [leadingCoeff_add_of_degree_lt] at mon
- rw [← mon]
+ rwa [leadingCoeff_add_of_degree_lt] at mon
rw [charpoly_degree_eq_dim]
rw [← neg_sub]
rw [degree_neg]
@@ -156,13 +154,12 @@ theorem charpoly_monic (M : Matrix n n R) : M.charpoly.Monic := by
theorem trace_eq_neg_charpoly_coeff [Nonempty n] (M : Matrix n n R) :
trace M = -M.charpoly.coeff (Fintype.card n - 1) := by
- rw [charpoly_coeff_eq_prod_coeff_of_le]; swap; rfl
- rw [Fintype.card, prod_X_sub_C_coeff_card_pred univ (fun i : n => M i i) Fintype.card_pos,
- neg_neg, trace]
- rfl
+ rw [charpoly_coeff_eq_prod_coeff_of_le _ le_rfl, Fintype.card,
+ prod_X_sub_C_coeff_card_pred univ (fun i : n => M i i) Fintype.card_pos, neg_neg, trace]
+ simp_rw [diag_apply]
#align matrix.trace_eq_neg_charpoly_coeff Matrix.trace_eq_neg_charpoly_coeff
--- I feel like this should use polynomial.alg_hom_eval₂_algebra_map
+-- I feel like this should use `Polynomial.algHom_eval₂_algebraMap`
theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
(matPolyEquiv M).eval ((scalar n) r) i j = (M i j).eval r := by
unfold Polynomial.eval
@@ -188,8 +185,11 @@ theorem matPolyEquiv_eval (M : Matrix n n R[X]) (r : R) (i j : n) :
theorem eval_det (M : Matrix n n R[X]) (r : R) :
Polynomial.eval r M.det = (Polynomial.eval (scalar n r) (matPolyEquiv M)).det := by
rw [Polynomial.eval, ← coe_eval₂RingHom, RingHom.map_det]
- apply congr_arg det; ext; symm; exact matPolyEquiv_eval _ _ _ _
- -- porting note: `exact` was `convert`
+ apply congr_arg det
+ ext
+ symm
+ -- porting note: `exact` was `convert`
+ exact matPolyEquiv_eval _ _ _ _
#align matrix.eval_det Matrix.eval_det
theorem det_eq_sign_charpoly_coeff (M : Matrix n n R) :
fix-comments.py
on all files.@@ -18,11 +18,11 @@ We give methods for computing coefficients of the characteristic polynomial.
## Main definitions
-- `matrix.charpoly_degree_eq_dim` proves that the degree of the characteristic polynomial
+- `Matrix.charpoly_degree_eq_dim` proves that the degree of the characteristic polynomial
over a nonzero ring is the dimension of the matrix
-- `matrix.det_eq_sign_charpoly_coeff` proves that the determinant is the constant term of the
+- `Matrix.det_eq_sign_charpoly_coeff` proves that the determinant is the constant term of the
characteristic polynomial, up to sign.
-- `matrix.trace_eq_neg_charpoly_coeff` proves that the trace is the negative of the (d-1)th
+- `Matrix.trace_eq_neg_charpoly_coeff` proves that the trace is the negative of the (d-1)th
coefficient of the characteristic polynomial, where d is the dimension of the matrix.
For a nonzero ring, this is the second-highest coefficient.
@@ -231,7 +231,7 @@ theorem aeval_eq_aeval_mod_charpoly (M : Matrix n n R) (p : R[X]) :
(aeval_modByMonic_eq_self_of_root M.charpoly_monic M.aeval_self_charpoly).symm
#align matrix.aeval_eq_aeval_mod_charpoly Matrix.aeval_eq_aeval_mod_charpoly
-/-- Any matrix power can be computed as the sum of matrix powers less than `fintype.card n`.
+/-- Any matrix power can be computed as the sum of matrix powers less than `Fintype.card n`.
TODO: add the statement for negative powers phrased with `zpow`. -/
theorem pow_eq_aeval_mod_charpoly (M : Matrix n n R) (k : ℕ) :
Most of the file had minor fixes. I added porting notes for everything that was not just a capitalization issue.
I tried to fix all the capitalization issues in the first actual commit (2492f1c1).
The next commit (b59a8cf3) contains all the porting notes.
I still have not managed to fix one of the proofs, though.
Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>
The unported dependencies are