linear_algebra.matrix.charpoly.coeffMathlib.LinearAlgebra.Matrix.Charpoly.Coeff

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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"
Diff
@@ -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)
Diff
@@ -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
 -/
Diff
@@ -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
Diff
@@ -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"
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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)
Diff
@@ -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
 
Diff
@@ -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`.
 
Diff
@@ -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]
 
Diff
@@ -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`. -/
Diff
@@ -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]
Diff
@@ -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`.
 
Diff
@@ -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`.
 
Diff
@@ -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
Diff
@@ -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
 
Diff
@@ -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) :
Diff
@@ -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

Changes in mathlib4

mathlib3
mathlib4
chore: Rename 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.

Diff
@@ -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 _
chore: avoid id.def (adaptation for nightly-2024-03-27) (#11829)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com>

Diff
@@ -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))
move(Polynomial): Move out of Data (#11751)

Polynomial and MvPolynomial are algebraic objects, hence should be under Algebra (or at least not under Data)

Diff
@@ -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
chore: avoid Ne.def (adaptation for nightly-2024-03-27) (#11801)
Diff
@@ -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
chore: Rename 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 | |

Diff
@@ -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']
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -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
chore: prepare Lean version bump with explicit simp (#10999)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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 :=
chore: remove stream-of-consciousness uses of 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>

Diff
@@ -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]
chore(LinearAlgebra/Matrix/Charpoly): place more decls in Matrix namespace (#10488)
Diff
@@ -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
feat(Data/Fin/Basic): Rename and extend *_above and _below lemmas (#10163)

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>

Diff
@@ -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
chore(*): rename 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>

Diff
@@ -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]
chore: remove uses of 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.

Diff
@@ -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) :
feat: Add norm_one_add_smul. (#8681)

Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>

Diff
@@ -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]
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -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
refactor(Data/Matrix/Basic): use a defeq for scalar that matches its docstring (#8115)

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.

Diff
@@ -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
chore: add missing hypothesis names to by_cases (#8533)

I've also got a change to make this required, but I'd like to land this first.

Diff
@@ -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) :
feat(Data/Polynomial/AlgebraMap): more results for non-commutative polynomials (#8116)

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.

Diff
@@ -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) :
feat: natDegree_sub_C (#7776)

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.

Diff
@@ -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
chore: tidy various files (#7035)
Diff
@@ -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]
feat: WithTop.charZero (#6992)

Also WithBot.charZero

Diff
@@ -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
feat: nilpotent matrices have nilpotent trace (#6588)

Also some related results

Co-authored-by: damiano <adomani@gmail.com>

Diff
@@ -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
feat: characterise the reverse of the characteristic polynomial of a matrix (#6561)
Diff
@@ -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
chore: drop 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).

Diff
@@ -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
 
refactor(Data/Matrix): Eliminate 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).

Diff
@@ -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
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -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
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
fix: ∑' precedence (#5615)
  • Also remove most superfluous parentheses around big operators (, and variants).
  • roughly the used regex: ([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤]) replaced by $1 $2 $3
Diff
@@ -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)
chore: tidy various files (#4466)
Diff
@@ -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) :
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -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 : ℕ) :
feat: port LinearAlgebra.Matrix.Charpoly.Coeff (#4169)

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>

Dependencies 10 + 615

616 files ported (98.4%)
260096 lines ported (98.7%)
Show graph

The unported dependencies are