mathlib3 documentation

linear_algebra.matrix.charpoly.basic

Characteristic polynomials and the Cayley-Hamilton theorem #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

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

See the file matrix/charpoly/coeff for corollaries of this theorem.

Main definitions #

Implementation details #

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

noncomputable def charmatrix {R : Type u} [comm_ring R] {n : Type w} [decidable_eq 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
theorem charmatrix_apply {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] (M : matrix n n R) (i j : n) :
@[simp]
theorem charmatrix_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 charmatrix_apply_ne {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] (M : matrix n n R) (i j : n) (h : i j) :
theorem charmatrix_reindex {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] {m : Type v} [decidable_eq m] [fintype m] (e : n m) (M : matrix n n R) :
noncomputable def matrix.charpoly {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] (M : matrix n n R) :

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

Equations
theorem matrix.charpoly_reindex {R : Type u} [comm_ring R] {n : Type w} [decidable_eq n] [fintype n] {m : Type v} [decidable_eq m] [fintype m] (e : n m) (M : matrix n n R) :
theorem matrix.aeval_self_charpoly {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.

See linear_map.aeval_self_charpoly for the equivalent statement about endomorphisms.