mathlib documentation

linear_algebra.charpoly.basic

Characteristic polynomial #

We define the characteristic polynomial of f : M →ₗ[R] M, where M is a finite and free R-module. The proof that f.charpoly is the characteristic polynomial of the matrix of f in any basis is in linear_algebra/charpoly/to_matrix.

Main definition #

noncomputable def linear_map.charpoly {R : Type u} {M : Type v} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [module.free R M] [module.finite R M] (f : M →ₗ[R] M) :

The characteristic polynomial of f : M →ₗ[R] M.

Equations
theorem linear_map.charpoly_monic {R : Type u} {M : Type v} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [module.free R M] [module.finite R M] (f : M →ₗ[R] M) :
theorem linear_map.aeval_self_charpoly {R : Type u} {M : Type v} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [module.free R M] [module.finite R M] (f : M →ₗ[R] M) :

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

See matrix.aeval_self_charpoly for the equivalent statement about matrices.

theorem linear_map.is_integral {R : Type u} {M : Type v} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [module.free R M] [module.finite R M] (f : M →ₗ[R] M) :
theorem linear_map.minpoly_dvd_charpoly {K : Type u} {M : Type v} [field K] [add_comm_group M] [module K M] [finite_dimensional K M] (f : M →ₗ[K] M) :
theorem linear_map.aeval_eq_aeval_mod_charpoly {R : Type u} {M : Type v} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [module.free R M] [module.finite R M] (f : M →ₗ[R] M) (p : R[X]) :

Any endomorphism polynomial p is equivalent under evaluation to p %ₘ f.charpoly; that is, p is equivalent to a polynomial with degree less than the dimension of the module.

theorem linear_map.pow_eq_aeval_mod_charpoly {R : Type u} {M : Type v} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [module.free R M] [module.finite R M] (f : M →ₗ[R] M) (k : ) :

Any endomorphism power can be computed as the sum of endomorphism powers less than the dimension of the module.

theorem linear_map.minpoly_coeff_zero_of_injective {R : Type u} {M : Type v} [comm_ring R] [nontrivial R] [add_comm_group M] [module R M] [module.free R M] [module.finite R M] {f : M →ₗ[R] M} (hf : function.injective f) :
(minpoly R f).coeff 0 0