Documentation

Mathlib.LinearAlgebra.Matrix.Charpoly.Basic

Characteristic polynomials and the Cayley-Hamilton theorem #

We define characteristic polynomials of matrices and prove the Cayley–Hamilton theorem over arbitrary commutative rings.

See the file Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean for corollaries of this theorem.

Main definitions #

Implementation details #

We follow a nice proof from http://drorbn.net/AcademicPensieve/2015-12/CayleyHamilton.pdf

def charmatrix {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] (M : Matrix n n R) :

The "characteristic matrix" of M : Matrix n n R is the matrix of polynomials $t I - M$. The determinant of this matrix is the characteristic polynomial.

Equations
Instances For
    theorem charmatrix_apply {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] (M : Matrix n n R) (i : n) (j : n) :
    charmatrix M i j = Matrix.diagonal (fun (x : n) => Polynomial.X) i j - Polynomial.C (M i j)
    @[simp]
    theorem charmatrix_apply_eq {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] (M : Matrix n n R) (i : n) :
    charmatrix M i i = Polynomial.X - Polynomial.C (M i i)
    @[simp]
    theorem charmatrix_apply_ne {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] (M : Matrix n n R) (i : n) (j : n) (h : i j) :
    charmatrix M i j = -Polynomial.C (M i j)
    theorem matPolyEquiv_charmatrix {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] (M : Matrix n n R) :
    matPolyEquiv (charmatrix M) = Polynomial.X - Polynomial.C M
    theorem charmatrix_reindex {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] {m : Type v} [DecidableEq m] [Fintype m] (e : n m) (M : Matrix n n R) :
    def Matrix.charpoly {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] (M : Matrix n n R) :

    The characteristic polynomial of a matrix M is given by $\det (t I - M)$.

    Equations
    Instances For
      theorem Matrix.charpoly_reindex {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] {m : Type v} [DecidableEq m] [Fintype m] (e : n m) (M : Matrix n n R) :
      theorem Matrix.aeval_self_charpoly {R : Type u} [CommRing R] {n : Type w} [DecidableEq n] [Fintype n] (M : Matrix n n R) :

      The Cayley-Hamilton Theorem, that the characteristic polynomial of a matrix, applied to the matrix itself, is zero.

      This holds over any commutative ring.

      See LinearMap.aeval_self_charpoly for the equivalent statement about endomorphisms.