linear_algebra.matrix.polynomial
⟷
Mathlib.LinearAlgebra.Matrix.Polynomial
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: 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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/b1abe23ae96fef89ad30d9f4362c307f72a55010
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -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 α) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -32,7 +32,7 @@ matrix determinant, polynomial
-/
-open Matrix BigOperators Polynomial
+open scoped Matrix BigOperators Polynomial
variable {n α : Type _} [DecidableEq n] [Fintype n] [CommRing α]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/52932b3a083d4142e78a15dc928084a22fea9ba0
@@ -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)`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/38f16f960f5006c6c0c2bac7b0aba5273188f4e5
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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.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.MonoidWithZero
lemmas from Algebra.BigOperators.List.Basic
to Algebra.BigOperators.List.Lemmas
.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.Data.List.Count
, Data.List.Dedup
, Data.List.ProdSigma
, Data.List.Zip
not depend on Algebra.BigOperators.List.Basic
.Algebra.BigOperators.List.Basic
. For the lemmas that were Nat
-specific, keep a version of them stated using Nat.sum
.Nat.sum_eq_listSum (l : List Nat) : Nat.sum l = l.sum
.@@ -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
Data
(#11751)
Polynomial
and MvPolynomial
are algebraic objects, hence should be under Algebra
(or at least not under Data
)
@@ -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
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
.
@@ -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|
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.
In particular this includes adjustments for the Lean PRs
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).
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})
.
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:
(config := { unfoldPartialApp := true })
in some places, to recover the old behaviour@[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>
@@ -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]
attribute [simp] ... in
-> attribute [local simp] ... in
(#7678)
Mathlib.Logic.Unique contains the line attribute [simp] eq_iff_true_of_subsingleton in ...
:
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 simp
s. 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.
@@ -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
Two pairs of the form foo
and foo'
, where foo'
is the simp lemma (and hence used in many simp only
s) 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>
@@ -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
@@ -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 α) :
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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
@@ -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
The unported dependencies are