linear_algebra.matrix.polynomialMathlib.LinearAlgebra.Matrix.Polynomial

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yakov Pechersky
 -/
 import Algebra.Polynomial.BigOperators
-import Data.Polynomial.Degree.Lemmas
+import Algebra.Polynomial.Degree.Lemmas
 import LinearAlgebra.Matrix.Determinant
 
 #align_import linear_algebra.matrix.polynomial from "leanprover-community/mathlib"@"86d1873c01a723aba6788f0b9051ae3d23b4c1c3"
Diff
@@ -115,12 +115,12 @@ theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
   rw [← @det_one n, ← coeff_det_X_add_C_card _ A, leading_coeff]
   simp only [Matrix.map_one, C_eq_zero, RingHom.map_one]
   cases' (nat_degree_det_X_add_C_le 1 A).eq_or_lt with h h
-  · simp only [RingHom.map_one, Matrix.map_one, C_eq_zero] at h 
+  · simp only [RingHom.map_one, Matrix.map_one, C_eq_zero] at h
     rw [h]
   · -- contradiction. we have a hypothesis that the degree is less than |n|
     -- but we know that coeff _ n = 1
     have H := coeff_eq_zero_of_nat_degree_lt h
-    rw [coeff_det_X_add_C_card] at H 
+    rw [coeff_det_X_add_C_card] at H
     simpa using H
 #align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_C
 -/
Diff
@@ -44,7 +44,7 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
   rw [det_apply]
   refine' (nat_degree_sum_le _ _).trans _
   refine' Multiset.max_nat_le_of_forall_le _ _ _
-  simp only [forall_apply_eq_imp_iff', true_and_iff, Function.comp_apply, Multiset.map_map,
+  simp only [forall_apply_eq_imp_iff, true_and_iff, Function.comp_apply, Multiset.map_map,
     Multiset.mem_map, exists_imp, Finset.mem_univ_val]
   intro g
   calc
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Yakov Pechersky. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yakov Pechersky
 -/
-import Mathbin.Algebra.Polynomial.BigOperators
-import Mathbin.Data.Polynomial.Degree.Lemmas
-import Mathbin.LinearAlgebra.Matrix.Determinant
+import Algebra.Polynomial.BigOperators
+import Data.Polynomial.Degree.Lemmas
+import LinearAlgebra.Matrix.Determinant
 
 #align_import linear_algebra.matrix.polynomial from "leanprover-community/mathlib"@"86d1873c01a723aba6788f0b9051ae3d23b4c1c3"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Yakov Pechersky. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yakov Pechersky
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.polynomial
-! leanprover-community/mathlib commit 86d1873c01a723aba6788f0b9051ae3d23b4c1c3
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Polynomial.BigOperators
 import Mathbin.Data.Polynomial.Degree.Lemmas
 import Mathbin.LinearAlgebra.Matrix.Determinant
 
+#align_import linear_algebra.matrix.polynomial from "leanprover-community/mathlib"@"86d1873c01a723aba6788f0b9051ae3d23b4c1c3"
+
 /-!
 # Matrices of polynomials and polynomials of matrices
 
Diff
@@ -40,6 +40,7 @@ open Polynomial Matrix Equiv.Perm
 
 namespace Polynomial
 
+#print Polynomial.natDegree_det_X_add_C_le /-
 theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n :=
   by
@@ -71,7 +72,9 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     _ ≤ nat_degree (X : α[X]) := (nat_degree_mul_C_le _ _)
     _ ≤ 1 := nat_degree_X_le
 #align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_le
+-/
 
+#print Polynomial.coeff_det_X_add_C_zero /-
 theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B :=
   by
@@ -83,7 +86,9 @@ theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
   refine' Finset.prod_congr rfl _
   simp
 #align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zero
+-/
 
+#print Polynomial.coeff_det_X_add_C_card /-
 theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A :=
   by
@@ -102,7 +107,9 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
     simpa only [Pi.smul_apply, map_apply, Algebra.id.smul_eq_mul, X_mul_C, nat_degree_C,
       max_eq_left, zero_le'] using (nat_degree_C_mul_le _ _).trans nat_degree_X_le
 #align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_card
+-/
 
+#print Polynomial.leadingCoeff_det_X_one_add_C /-
 theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 :=
   by
@@ -119,6 +126,7 @@ theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     rw [coeff_det_X_add_C_card] at H 
     simpa using H
 #align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_C
+-/
 
 end Polynomial
 
Diff
@@ -60,7 +60,6 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
       (nat_degree_prod_le (Finset.univ : Finset n) fun i : n => (X • A.map C + B.map C) (g i) i)
     _ ≤ finset.univ.card • 1 := (Finset.sum_le_card_nsmul _ _ 1 fun (i : n) _ => _)
     _ ≤ Fintype.card n := by simpa
-    
   calc
     nat_degree (((X : α[X]) • A.map C + B.map C) (g i) i) =
         nat_degree ((X : α[X]) * C (A (g i) i) + C (B (g i) i)) :=
@@ -71,7 +70,6 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
       (max_eq_left ((nat_degree_C _).le.trans (zero_le _)))
     _ ≤ nat_degree (X : α[X]) := (nat_degree_mul_C_le _ _)
     _ ≤ 1 := nat_degree_X_le
-    
 #align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_le
 
 theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
Diff
@@ -96,7 +96,7 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
   intro g
   convert coeff_smul (SignType.sign g) _ _
   rw [← mul_one (Fintype.card n)]
-  convert(coeff_prod_of_nat_degree_le _ _ _ _).symm
+  convert (coeff_prod_of_nat_degree_le _ _ _ _).symm
   · ext
     simp [coeff_C]
   · intro p hp
Diff
@@ -113,12 +113,12 @@ theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
   rw [← @det_one n, ← coeff_det_X_add_C_card _ A, leading_coeff]
   simp only [Matrix.map_one, C_eq_zero, RingHom.map_one]
   cases' (nat_degree_det_X_add_C_le 1 A).eq_or_lt with h h
-  · simp only [RingHom.map_one, Matrix.map_one, C_eq_zero] at h
+  · simp only [RingHom.map_one, Matrix.map_one, C_eq_zero] at h 
     rw [h]
   · -- contradiction. we have a hypothesis that the degree is less than |n|
     -- but we know that coeff _ n = 1
     have H := coeff_eq_zero_of_nat_degree_lt h
-    rw [coeff_det_X_add_C_card] at H
+    rw [coeff_det_X_add_C_card] at H 
     simpa using H
 #align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_C
 
Diff
@@ -32,7 +32,7 @@ matrix determinant, polynomial
 -/
 
 
-open Matrix BigOperators Polynomial
+open scoped Matrix BigOperators Polynomial
 
 variable {n α : Type _} [DecidableEq n] [Fintype n] [CommRing α]
 
Diff
@@ -40,9 +40,6 @@ open Polynomial Matrix Equiv.Perm
 
 namespace Polynomial
 
-/- warning: polynomial.nat_degree_det_X_add_C_le -> Polynomial.natDegree_det_X_add_C_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_leₓ'. -/
 theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n :=
   by
@@ -77,9 +74,6 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     
 #align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_le
 
-/- warning: polynomial.coeff_det_X_add_C_zero -> Polynomial.coeff_det_X_add_C_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zeroₓ'. -/
 theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B :=
   by
@@ -92,9 +86,6 @@ theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
   simp
 #align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zero
 
-/- warning: polynomial.coeff_det_X_add_C_card -> Polynomial.coeff_det_X_add_C_card is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_cardₓ'. -/
 theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A :=
   by
@@ -114,9 +105,6 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
       max_eq_left, zero_le'] using (nat_degree_C_mul_le _ _).trans nat_degree_X_le
 #align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_card
 
-/- warning: polynomial.leading_coeff_det_X_one_add_C -> Polynomial.leadingCoeff_det_X_one_add_C is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_Cₓ'. -/
 theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 :=
   by
Diff
@@ -41,10 +41,7 @@ open Polynomial Matrix Equiv.Perm
 namespace Polynomial
 
 /- warning: polynomial.nat_degree_det_X_add_C_le -> Polynomial.natDegree_det_X_add_C_le is a dubious translation:
-lean 3 declaration is
-  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), LE.le.{0} Nat Nat.hasLe (Polynomial.natDegree.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Fintype.card.{u1} n _inst_2)
-but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), LE.le.{0} Nat instLENat (Polynomial.natDegree.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Fintype.card.{u2} n _inst_2)
+<too large>
 Case conversion may be inaccurate. Consider using '#align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_leₓ'. -/
 theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n :=
@@ -81,10 +78,7 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
 #align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_le
 
 /- warning: polynomial.coeff_det_X_add_C_zero -> Polynomial.coeff_det_X_add_C_zero is a dubious translation:
-lean 3 declaration is
-  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
-but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
+<too large>
 Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zeroₓ'. -/
 theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B :=
@@ -99,10 +93,7 @@ theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
 #align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zero
 
 /- warning: polynomial.coeff_det_X_add_C_card -> Polynomial.coeff_det_X_add_C_card is a dubious translation:
-lean 3 declaration is
-  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Fintype.card.{u1} n _inst_2)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
-but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Fintype.card.{u2} n _inst_2)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
+<too large>
 Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_cardₓ'. -/
 theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A :=
@@ -124,10 +115,7 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
 #align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_card
 
 /- warning: polynomial.leading_coeff_det_X_one_add_C -> Polynomial.leadingCoeff_det_X_one_add_C is a dubious translation:
-lean 3 declaration is
-  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.leadingCoeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasOne.{u2, u1} n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.hasOne.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (OfNat.ofNat.{u2} α 1 (OfNat.mk.{u2} α 1 (One.one.{u2} α (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))
-but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.leadingCoeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.one.{u1, u2} n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.one.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (Semiring.toOne.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_Cₓ'. -/
 theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 :=
Diff
@@ -44,7 +44,7 @@ namespace Polynomial
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), LE.le.{0} Nat Nat.hasLe (Polynomial.natDegree.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Fintype.card.{u1} n _inst_2)
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), LE.le.{0} Nat instLENat (Polynomial.natDegree.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Fintype.card.{u2} n _inst_2)
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), LE.le.{0} Nat instLENat (Polynomial.natDegree.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Fintype.card.{u2} n _inst_2)
 Case conversion may be inaccurate. Consider using '#align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_leₓ'. -/
 theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n :=
@@ -84,7 +84,7 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
 Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zeroₓ'. -/
 theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B :=
@@ -102,7 +102,7 @@ theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Fintype.card.{u1} n _inst_2)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Fintype.card.{u2} n _inst_2)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Fintype.card.{u2} n _inst_2)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
 Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_cardₓ'. -/
 theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A :=
@@ -127,7 +127,7 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.leadingCoeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasOne.{u2, u1} n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.hasOne.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (OfNat.ofNat.{u2} α 1 (OfNat.mk.{u2} α 1 (One.one.{u2} α (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.leadingCoeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.one.{u1, u2} n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.one.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (Semiring.toOne.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.leadingCoeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.one.{u1, u2} n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.one.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (Semiring.toOne.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))
 Case conversion may be inaccurate. Consider using '#align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_Cₓ'. -/
 theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 :=
Diff
@@ -44,7 +44,7 @@ namespace Polynomial
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), LE.le.{0} Nat Nat.hasLe (Polynomial.natDegree.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Fintype.card.{u1} n _inst_2)
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), LE.le.{0} Nat instLENat (Polynomial.natDegree.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Fintype.card.{u2} n _inst_2)
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), LE.le.{0} Nat instLENat (Polynomial.natDegree.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Fintype.card.{u2} n _inst_2)
 Case conversion may be inaccurate. Consider using '#align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_leₓ'. -/
 theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n :=
@@ -84,7 +84,7 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
 Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zeroₓ'. -/
 theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B :=
@@ -102,7 +102,7 @@ theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Fintype.card.{u1} n _inst_2)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))))) (Fintype.card.{u2} n _inst_2)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Fintype.card.{u2} n _inst_2)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
 Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_cardₓ'. -/
 theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A :=
@@ -127,7 +127,7 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
 lean 3 declaration is
   forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.leadingCoeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasOne.{u2, u1} n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.hasOne.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (OfNat.ofNat.{u2} α 1 (OfNat.mk.{u2} α 1 (One.one.{u2} α (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))
 but is expected to have type
-  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.leadingCoeff.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.one.{u1, u2} n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.one.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (NonAssocRing.toOne.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_3)))))
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.leadingCoeff.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.add'.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (Matrix.one.{u1, u2} n (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.one.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))))) α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))))) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (Semiring.toOne.{u1} α (CommSemiring.toSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))
 Case conversion may be inaccurate. Consider using '#align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_Cₓ'. -/
 theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yakov Pechersky
 
 ! This file was ported from Lean 3 source module linear_algebra.matrix.polynomial
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 86d1873c01a723aba6788f0b9051ae3d23b4c1c3
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.LinearAlgebra.Matrix.Determinant
 /-!
 # Matrices of polynomials and polynomials of matrices
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 In this file, we prove results about matrices over a polynomial ring.
 In particular, we give results about the polynomial given by
 `det (t * I + A)`.
Diff
@@ -37,7 +37,13 @@ open Polynomial Matrix Equiv.Perm
 
 namespace Polynomial
 
-theorem natDegree_det_x_add_c_le (A B : Matrix n n α) :
+/- warning: polynomial.nat_degree_det_X_add_C_le -> Polynomial.natDegree_det_X_add_C_le is a dubious translation:
+lean 3 declaration is
+  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), LE.le.{0} Nat Nat.hasLe (Polynomial.natDegree.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Fintype.card.{u1} n _inst_2)
+but is expected to have type
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), LE.le.{0} Nat instLENat (Polynomial.natDegree.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Fintype.card.{u2} n _inst_2)
+Case conversion may be inaccurate. Consider using '#align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_leₓ'. -/
+theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n :=
   by
   rw [det_apply]
@@ -69,9 +75,15 @@ theorem natDegree_det_x_add_c_le (A B : Matrix n n α) :
     _ ≤ nat_degree (X : α[X]) := (nat_degree_mul_C_le _ _)
     _ ≤ 1 := nat_degree_X_le
     
-#align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_x_add_c_le
-
-theorem coeff_det_x_add_c_zero (A B : Matrix n n α) :
+#align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_le
+
+/- warning: polynomial.coeff_det_X_add_C_zero -> Polynomial.coeff_det_X_add_C_zero is a dubious translation:
+lean 3 declaration is
+  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
+but is expected to have type
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))))) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 B)
+Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zeroₓ'. -/
+theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B :=
   by
   rw [det_apply, finset_sum_coeff, det_apply]
@@ -81,9 +93,15 @@ theorem coeff_det_x_add_c_zero (A B : Matrix n n α) :
   rw [coeff_zero_prod]
   refine' Finset.prod_congr rfl _
   simp
-#align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_x_add_c_zero
-
-theorem coeff_det_x_add_c_card (A B : Matrix n n α) :
+#align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_X_add_C_zero
+
+/- warning: polynomial.coeff_det_X_add_C_card -> Polynomial.coeff_det_X_add_C_card is a dubious translation:
+lean 3 declaration is
+  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α) (B : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.coeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) B (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))))) (Fintype.card.{u1} n _inst_2)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
+but is expected to have type
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α) (B : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.coeff.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) B (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))))) (Fintype.card.{u2} n _inst_2)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 α _inst_3 A)
+Case conversion may be inaccurate. Consider using '#align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_cardₓ'. -/
+theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
     coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A :=
   by
   rw [det_apply, det_apply, finset_sum_coeff]
@@ -100,9 +118,15 @@ theorem coeff_det_x_add_c_card (A B : Matrix n n α) :
     refine' (nat_degree_add_le _ _).trans _
     simpa only [Pi.smul_apply, map_apply, Algebra.id.smul_eq_mul, X_mul_C, nat_degree_C,
       max_eq_left, zero_le'] using (nat_degree_C_mul_le _ _).trans nat_degree_X_le
-#align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_x_add_c_card
-
-theorem leadingCoeff_det_x_one_add_c (A : Matrix n n α) :
+#align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_card
+
+/- warning: polynomial.leading_coeff_det_X_one_add_C -> Polynomial.leadingCoeff_det_X_one_add_C is a dubious translation:
+lean 3 declaration is
+  forall {n : Type.{u1}} {α : Type.{u2}} [_inst_1 : DecidableEq.{succ u1} n] [_inst_2 : Fintype.{u1} n] [_inst_3 : CommRing.{u2} α] (A : Matrix.{u1, u1, u2} n n α), Eq.{succ u2} α (Polynomial.leadingCoeff.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)) (Matrix.det.{u2, u1} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.commRing.{u2} α _inst_3) (HAdd.hAdd.{max u1 u2, max u1 u2, max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (instHAdd.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasAdd.{u2, u1, u1} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.add'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (SMul.smul.{u2, max u1 u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasSmul.{u2, u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Mul.toSMul.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.mul'.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.X.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (OfNat.ofNat.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (OfNat.mk.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) 1 (One.one.{max u1 u2} (Matrix.{u1, u1, u2} n n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (Matrix.hasOne.{u2, u1} n (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.hasOne.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (Matrix.map.{u2, u2, u1, u1} n n α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) A (coeFn.{succ u2, succ u2} (RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (fun (_x : RingHom.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) => α -> (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))) (RingHom.hasCoeToFun.{u2, u2} α (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Semiring.toNonAssocSemiring.{u2} (Polynomial.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))) (Polynomial.semiring.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3))))) (Polynomial.C.{u2} α (Ring.toSemiring.{u2} α (CommRing.toRing.{u2} α _inst_3)))))))) (OfNat.ofNat.{u2} α 1 (OfNat.mk.{u2} α 1 (One.one.{u2} α (AddMonoidWithOne.toOne.{u2} α (AddGroupWithOne.toAddMonoidWithOne.{u2} α (AddCommGroupWithOne.toAddGroupWithOne.{u2} α (Ring.toAddCommGroupWithOne.{u2} α (CommRing.toRing.{u2} α _inst_3))))))))
+but is expected to have type
+  forall {n : Type.{u2}} {α : Type.{u1}} [_inst_1 : DecidableEq.{succ u2} n] [_inst_2 : Fintype.{u2} n] [_inst_3 : CommRing.{u1} α] (A : Matrix.{u2, u2, u1} n n α), Eq.{succ u1} α (Polynomial.leadingCoeff.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)) (Matrix.det.{u1, u2} n (fun (a : n) (b : n) => _inst_1 a b) _inst_2 (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commRing.{u1} α _inst_3) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHAdd.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.add.{u1, u2, u2} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.add'.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (HSMul.hSMul.{u1, max u2 u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (instHSMul.{u1, max u2 u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.smul.{u1, u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.toSMul.{u1, u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Algebra.id.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.commSemiring.{u1} α (CommRing.toCommSemiring.{u1} α _inst_3)))))) (Polynomial.X.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (OfNat.ofNat.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) 1 (One.toOfNat1.{max u2 u1} (Matrix.{u2, u2, u1} n n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (Matrix.one.{u1, u2} n (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (fun (a : n) (b : n) => _inst_1 a b) (Polynomial.zero.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.one.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))))) (Matrix.map.{u1, u1, u2, u2} n n α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) A (FunLike.coe.{succ u1, succ u1, succ u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (fun (_x : α) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : α) => Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) _x) (MulHomClass.toFunLike.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonUnitalNonAssocSemiring.toMul.{u1} α (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (NonUnitalNonAssocSemiring.toMul.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))) (NonUnitalRingHomClass.toMulHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} α (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) (RingHomClass.toNonUnitalRingHomClass.{u1, u1, u1} (RingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))))) α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))) (RingHom.instRingHomClassRingHom.{u1, u1} α (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Semiring.toNonAssocSemiring.{u1} (Polynomial.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3))) (Polynomial.semiring.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (Polynomial.C.{u1} α (Ring.toSemiring.{u1} α (CommRing.toRing.{u1} α _inst_3)))))))) (OfNat.ofNat.{u1} α 1 (One.toOfNat1.{u1} α (NonAssocRing.toOne.{u1} α (Ring.toNonAssocRing.{u1} α (CommRing.toRing.{u1} α _inst_3)))))
+Case conversion may be inaccurate. Consider using '#align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_Cₓ'. -/
+theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 :=
   by
   cases subsingleton_or_nontrivial α
@@ -117,7 +141,7 @@ theorem leadingCoeff_det_x_one_add_c (A : Matrix n n α) :
     have H := coeff_eq_zero_of_nat_degree_lt h
     rw [coeff_det_X_add_C_card] at H
     simpa using H
-#align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_x_one_add_c
+#align polynomial.leading_coeff_det_X_one_add_C Polynomial.leadingCoeff_det_X_one_add_C
 
 end Polynomial
 
Diff
@@ -93,7 +93,7 @@ theorem coeff_det_x_add_c_card (A B : Matrix n n α) :
   intro g
   convert coeff_smul (SignType.sign g) _ _
   rw [← mul_one (Fintype.card n)]
-  convert (coeff_prod_of_nat_degree_le _ _ _ _).symm
+  convert(coeff_prod_of_nat_degree_le _ _ _ _).symm
   · ext
     simp [coeff_C]
   · intro p hp
Diff
@@ -38,7 +38,7 @@ open Polynomial Matrix Equiv.Perm
 namespace Polynomial
 
 theorem natDegree_det_x_add_c_le (A B : Matrix n n α) :
-    natDegree (det ((x : α[X]) • A.map c + B.map c)) ≤ Fintype.card n :=
+    natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n :=
   by
   rw [det_apply]
   refine' (nat_degree_sum_le _ _).trans _
@@ -72,7 +72,7 @@ theorem natDegree_det_x_add_c_le (A B : Matrix n n α) :
 #align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_x_add_c_le
 
 theorem coeff_det_x_add_c_zero (A B : Matrix n n α) :
-    coeff (det ((x : α[X]) • A.map c + B.map c)) 0 = det B :=
+    coeff (det ((X : α[X]) • A.map C + B.map C)) 0 = det B :=
   by
   rw [det_apply, finset_sum_coeff, det_apply]
   refine' Finset.sum_congr rfl _
@@ -84,7 +84,7 @@ theorem coeff_det_x_add_c_zero (A B : Matrix n n α) :
 #align polynomial.coeff_det_X_add_C_zero Polynomial.coeff_det_x_add_c_zero
 
 theorem coeff_det_x_add_c_card (A B : Matrix n n α) :
-    coeff (det ((x : α[X]) • A.map c + B.map c)) (Fintype.card n) = det A :=
+    coeff (det ((X : α[X]) • A.map C + B.map C)) (Fintype.card n) = det A :=
   by
   rw [det_apply, det_apply, finset_sum_coeff]
   refine' Finset.sum_congr rfl _
@@ -103,7 +103,7 @@ theorem coeff_det_x_add_c_card (A B : Matrix n n α) :
 #align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_x_add_c_card
 
 theorem leadingCoeff_det_x_one_add_c (A : Matrix n n α) :
-    leadingCoeff (det ((x : α[X]) • (1 : Matrix n n α[X]) + A.map c)) = 1 :=
+    leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 :=
   by
   cases subsingleton_or_nontrivial α
   · simp
Diff
@@ -54,8 +54,8 @@ theorem natDegree_det_x_add_c_le (A B : Matrix n n α) :
       · rw [sg, one_smul]
       · rw [sg, Units.neg_smul, one_smul, nat_degree_neg]
     _ ≤ ∑ i : n, nat_degree (((X : α[X]) • A.map C + B.map C) (g i) i) :=
-      nat_degree_prod_le (Finset.univ : Finset n) fun i : n => (X • A.map C + B.map C) (g i) i
-    _ ≤ finset.univ.card • 1 := Finset.sum_le_card_nsmul _ _ 1 fun (i : n) _ => _
+      (nat_degree_prod_le (Finset.univ : Finset n) fun i : n => (X • A.map C + B.map C) (g i) i)
+    _ ≤ finset.univ.card • 1 := (Finset.sum_le_card_nsmul _ _ 1 fun (i : n) _ => _)
     _ ≤ Fintype.card n := by simpa
     
   calc
@@ -63,10 +63,10 @@ theorem natDegree_det_x_add_c_le (A B : Matrix n n α) :
         nat_degree ((X : α[X]) * C (A (g i) i) + C (B (g i) i)) :=
       by simp
     _ ≤ max (nat_degree ((X : α[X]) * C (A (g i) i))) (nat_degree (C (B (g i) i))) :=
-      nat_degree_add_le _ _
+      (nat_degree_add_le _ _)
     _ = nat_degree ((X : α[X]) * C (A (g i) i)) :=
-      max_eq_left ((nat_degree_C _).le.trans (zero_le _))
-    _ ≤ nat_degree (X : α[X]) := nat_degree_mul_C_le _ _
+      (max_eq_left ((nat_degree_C _).le.trans (zero_le _)))
+    _ ≤ nat_degree (X : α[X]) := (nat_degree_mul_C_le _ _)
     _ ≤ 1 := nat_degree_X_le
     
 #align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_x_add_c_le

Changes in mathlib4

mathlib3
mathlib4
chore(Algebra/BigOperators/List): Use Std lemmas (#11725)
  • Make Algebra.BigOperators.List.Basic, Data.List.Chain not depend on Data.Nat.Order.Basic by using Nat-specific Std lemmas rather than general mathlib ones. I leave the Data.Nat.Basic import since Algebra.BigOperators.List.Basic is algebra territory.
  • Make Algebra.BigOperators.List.Basic not depend on Algebra.Divisibility.Basic. I'm not too sure about that one since they already are algebra. My motivation is that they involve ring-like objects while big operators are about group-like objects, but this is in some sense a second order refactor.
  • As a consequence, move the divisibility and MonoidWithZero lemmas from Algebra.BigOperators.List.Basic to Algebra.BigOperators.List.Lemmas.
  • Move the content of Algebra.BigOperators.List.Defs to Algebra.BigOperators.List.Basic since no file imported the former without the latter and their imports are becoming very close after this PR.
  • Make Data.List.Count, Data.List.Dedup, Data.List.ProdSigma, Data.List.Zip not depend on Algebra.BigOperators.List.Basic.
  • As a consequence, move the big operators lemmas that were in there to Algebra.BigOperators.List.Basic. For the lemmas that were Nat -specific, keep a version of them stated using Nat.sum.
  • To help with this, add Nat.sum_eq_listSum (l : List Nat) : Nat.sum l = l.sum.
Diff
@@ -40,7 +40,7 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     natDegree (det ((X : α[X]) • A.map C + B.map C : Matrix n n α[X])) ≤ Fintype.card n := by
   rw [det_apply]
   refine' (natDegree_sum_le _ _).trans _
-  refine' Multiset.max_nat_le_of_forall_le _ _ _
+  refine' Multiset.max_le_of_forall_le _ _ _
   simp only [forall_apply_eq_imp_iff, true_and_iff, Function.comp_apply, Multiset.map_map,
     Multiset.mem_map, exists_imp, Finset.mem_univ_val]
   intro g
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
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yakov Pechersky
 -/
 import Mathlib.Algebra.Polynomial.BigOperators
-import Mathlib.Data.Polynomial.Degree.Lemmas
+import Mathlib.Algebra.Polynomial.Degree.Lemmas
 import Mathlib.LinearAlgebra.Matrix.Determinant
 import Mathlib.Tactic.ComputeDegree
 
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
@@ -92,7 +92,7 @@ theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
   · simp [eq_iff_true_of_subsingleton]
   rw [← @det_one n, ← coeff_det_X_add_C_card _ A, leadingCoeff]
   simp only [Matrix.map_one, C_eq_zero, RingHom.map_one]
-  cases' (natDegree_det_X_add_C_le 1 A).eq_or_lt with h h
+  rcases (natDegree_det_X_add_C_le 1 A).eq_or_lt with h | h
   · simp only [RingHom.map_one, Matrix.map_one, C_eq_zero] at h
     rw [h]
   · -- contradiction. we have a hypothesis that the degree is less than |n|
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -37,7 +37,7 @@ open Polynomial Matrix Equiv.Perm
 namespace Polynomial
 
 theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
-    natDegree (det ((X : α[X]) • A.map C + B.map C)) ≤ Fintype.card n := by
+    natDegree (det ((X : α[X]) • A.map C + B.map C : Matrix n n α[X])) ≤ Fintype.card n := by
   rw [det_apply]
   refine' (natDegree_sum_le _ _).trans _
   refine' Multiset.max_nat_le_of_forall_le _ _ _
@@ -45,13 +45,14 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
     Multiset.mem_map, exists_imp, Finset.mem_univ_val]
   intro g
   calc
-    natDegree (sign g • ∏ i : n, (X • A.map C + B.map C) (g i) i) ≤
-        natDegree (∏ i : n, (X • A.map C + B.map C) (g i) i) := by
+    natDegree (sign g • ∏ i : n, (X • A.map C + B.map C : Matrix n n α[X]) (g i) i) ≤
+        natDegree (∏ i : n, (X • A.map C + B.map C : Matrix n n α[X]) (g i) i) := by
       cases' Int.units_eq_one_or (sign g) with sg sg
       · rw [sg, one_smul]
       · rw [sg, Units.neg_smul, one_smul, natDegree_neg]
-    _ ≤ ∑ i : n, natDegree (((X : α[X]) • A.map C + B.map C) (g i) i) :=
-      (natDegree_prod_le (Finset.univ : Finset n) fun i : n => (X • A.map C + B.map C) (g i) i)
+    _ ≤ ∑ i : n, natDegree (((X : α[X]) • A.map C + B.map C : Matrix n n α[X]) (g i) i) :=
+      (natDegree_prod_le (Finset.univ : Finset n) fun i : n =>
+        (X • A.map C + B.map C : Matrix n n α[X]) (g i) i)
     _ ≤ Finset.univ.card • 1 := (Finset.sum_le_card_nsmul _ _ 1 fun (i : n) _ => ?_)
     _ ≤ Fintype.card n := by simp [mul_one, Algebra.id.smul_eq_mul, Finset.card_univ]
   dsimp only [add_apply, smul_apply, map_apply, smul_eq_mul]
fix: attribute [simp] ... in -> attribute [local simp] ... in (#7678)

Mathlib.Logic.Unique contains the line attribute [simp] eq_iff_true_of_subsingleton in ...:

https://github.com/leanprover-community/mathlib4/blob/96a11c7aac574c00370c2b3dab483cb676405c5d/Mathlib/Logic/Unique.lean#L255-L256

Despite what the in part may imply, this adds the lemma to the simp set "globally", including for downstream files; it is likely that attribute [local simp] eq_iff_true_of_subsingleton in ... was meant instead (or maybe scoped simp, but I think "scoped" refers to the current namespace). Indeed, the relevant lemma is not marked with @[simp] for possible slowness: https://github.com/leanprover/std4/blob/846e9e1d6bb534774d1acd2dc430e70987da3c18/Std/Logic.lean#L749. Adding it to the simp set causes the example at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Regression.20in.20simp to slow down.

This PR changes this and fixes the relevant downstream simps. There was also one ocurrence of attribute [simp] FullSubcategory.comp_def FullSubcategory.id_def in in Mathlib.CategoryTheory.Monoidal.Subcategory but that was much easier to fix.

https://github.com/leanprover-community/mathlib4/blob/bc49eb9ba756a233370b4b68bcdedd60402f71ed/Mathlib/CategoryTheory/Monoidal/Subcategory.lean#L118-L119

Diff
@@ -88,7 +88,7 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
 theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
     leadingCoeff (det ((X : α[X]) • (1 : Matrix n n α[X]) + A.map C)) = 1 := by
   cases subsingleton_or_nontrivial α
-  · simp
+  · simp [eq_iff_true_of_subsingleton]
   rw [← @det_one n, ← coeff_det_X_add_C_card _ A, leadingCoeff]
   simp only [Matrix.map_one, C_eq_zero, RingHom.map_one]
   cases' (natDegree_det_X_add_C_le 1 A).eq_or_lt with h h
chore: swap primes on forall_apply_eq_imp_iff (#7705)

Two pairs of the form foo and foo', where foo' is the simp lemma (and hence used in many simp onlys) and foo is not used at all.

Swap the primes, so that when it is time (now!) to upstream the lemma we actually use, it doesn't need to have a prime...

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

Diff
@@ -41,7 +41,7 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
   rw [det_apply]
   refine' (natDegree_sum_le _ _).trans _
   refine' Multiset.max_nat_le_of_forall_le _ _ _
-  simp only [forall_apply_eq_imp_iff', true_and_iff, Function.comp_apply, Multiset.map_map,
+  simp only [forall_apply_eq_imp_iff, true_and_iff, Function.comp_apply, Multiset.map_map,
     Multiset.mem_map, exists_imp, Finset.mem_univ_val]
   intro g
   calc
chore: golf using compute_degree (#6222)

This PR is a companion to #6221. It uses the tactic compute_degree to golf two proofs and restore a proof closer to its mathlib3 version.

Diff
@@ -6,6 +6,7 @@ Authors: Yakov Pechersky
 import Mathlib.Algebra.Polynomial.BigOperators
 import Mathlib.Data.Polynomial.Degree.Lemmas
 import Mathlib.LinearAlgebra.Matrix.Determinant
+import Mathlib.Tactic.ComputeDegree
 
 #align_import linear_algebra.matrix.polynomial from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
 
@@ -53,17 +54,8 @@ theorem natDegree_det_X_add_C_le (A B : Matrix n n α) :
       (natDegree_prod_le (Finset.univ : Finset n) fun i : n => (X • A.map C + B.map C) (g i) i)
     _ ≤ Finset.univ.card • 1 := (Finset.sum_le_card_nsmul _ _ 1 fun (i : n) _ => ?_)
     _ ≤ Fintype.card n := by simp [mul_one, Algebra.id.smul_eq_mul, Finset.card_univ]
-
-  calc
-    natDegree (((X : α[X]) • A.map C + B.map C) (g i) i) =
-        natDegree ((X : α[X]) * C (A (g i) i) + C (B (g i) i)) :=
-      by simp
-    _ ≤ max (natDegree ((X : α[X]) * C (A (g i) i))) (natDegree (C (B (g i) i))) :=
-      (natDegree_add_le _ _)
-    _ = natDegree ((X : α[X]) * C (A (g i) i)) :=
-      (max_eq_left ((natDegree_C _).le.trans (zero_le _)))
-    _ ≤ natDegree (X : α[X]) := (natDegree_mul_C_le _ _)
-    _ ≤ 1 := natDegree_X_le
+  dsimp only [add_apply, smul_apply, map_apply, smul_eq_mul]
+  compute_degree
 #align polynomial.nat_degree_det_X_add_C_le Polynomial.natDegree_det_X_add_C_le
 
 theorem coeff_det_X_add_C_zero (A B : Matrix n n α) :
@@ -89,9 +81,8 @@ theorem coeff_det_X_add_C_card (A B : Matrix n n α) :
   convert (coeff_prod_of_natDegree_le (R := α) _ _ _ _).symm
   · simp [coeff_C]
   · rintro p -
-    refine' (natDegree_add_le _ _).trans _
-    simpa [Pi.smul_apply, map_apply, Algebra.id.smul_eq_mul, X_mul_C, natDegree_C,
-      max_eq_left, zero_le'] using (natDegree_C_mul_le _ _).trans (natDegree_X_le (R := α))
+    dsimp only [add_apply, smul_apply, map_apply, smul_eq_mul]
+    compute_degree
 #align polynomial.coeff_det_X_add_C_card Polynomial.coeff_det_X_add_C_card
 
 theorem leadingCoeff_det_X_one_add_C (A : Matrix n n α) :
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
@@ -29,7 +29,7 @@ set_option linter.uppercaseLean3 false
 
 open Matrix BigOperators Polynomial
 
-variable {n α : Type _} [DecidableEq n] [Fintype n] [CommRing α]
+variable {n α : Type*} [DecidableEq n] [Fintype n] [CommRing α]
 
 open Polynomial Matrix Equiv.Perm
 
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,16 +2,13 @@
 Copyright (c) 2021 Yakov Pechersky. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Yakov Pechersky
-
-! This file was ported from Lean 3 source module linear_algebra.matrix.polynomial
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Polynomial.BigOperators
 import Mathlib.Data.Polynomial.Degree.Lemmas
 import Mathlib.LinearAlgebra.Matrix.Determinant
 
+#align_import linear_algebra.matrix.polynomial from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
 /-!
 # Matrices of polynomials and polynomials of matrices
 
feat: port LinearAlgebra.Matrix.Polynomial (#3550)

Dependencies 8 + 537

538 files ported (98.5%)
224756 lines ported (98.6%)
Show graph

The unported dependencies are