mathlib documentation

linear_algebra.char_poly

Characteristic polynomials and the Cayley-Hamilton theorem

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

Main definitions

Implementation details

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

def char_matrix {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] :
matrix n n Rmatrix n n (polynomial 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
@[simp]
theorem char_matrix_apply_eq {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] (M : matrix n n R) (i : n) :

@[simp]
theorem char_matrix_apply_ne {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] (M : matrix n n R) (i j : n) :
i jchar_matrix M i j = -polynomial.C (M i j)

def char_poly {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] :
matrix n n Rpolynomial R

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

Equations
theorem aeval_self_char_poly {R : Type u} [comm_ring R] {n : Type w} [decidable_eq 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.