Documentation

Mathlib.LinearAlgebra.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 LinearAlgebra/Charpoly/ToMatrix.

Main definition #

def LinearMap.charpoly {R : Type u} {M : Type v} [CommRing R] [AddCommGroup 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
Instances For
    theorem LinearMap.charpoly_def {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (f : M →ₗ[R] M) :
    theorem LinearMap.charpoly_monic {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (f : M →ₗ[R] M) :
    f.charpoly.Monic
    theorem LinearMap.charpoly_natDegree {R : Type u} {M : Type v} [CommRing R] [Nontrivial R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (f : M →ₗ[R] M) [StrongRankCondition R] :
    f.charpoly.natDegree = FiniteDimensional.finrank R M
    theorem LinearMap.aeval_self_charpoly {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (f : M →ₗ[R] M) :
    (Polynomial.aeval f) f.charpoly = 0

    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 LinearMap.isIntegral {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (f : M →ₗ[R] M) :
    theorem LinearMap.minpoly_dvd_charpoly {K : Type u} {M : Type v} [Field K] [AddCommGroup M] [Module K M] [FiniteDimensional K M] (f : M →ₗ[K] M) :
    minpoly K f f.charpoly
    theorem LinearMap.aeval_eq_aeval_mod_charpoly {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (f : M →ₗ[R] M) (p : Polynomial R) :
    (Polynomial.aeval f) p = (Polynomial.aeval f) (p %ₘ f.charpoly)

    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 LinearMap.pow_eq_aeval_mod_charpoly {R : Type u} {M : Type v} [CommRing R] [AddCommGroup M] [Module R M] [Module.Free R M] [Module.Finite R M] (f : M →ₗ[R] M) (k : ) :
    f ^ k = (Polynomial.aeval f) (Polynomial.X ^ k %ₘ f.charpoly)

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

    theorem LinearMap.minpoly_coeff_zero_of_injective {R : Type u} {M : Type v} [CommRing R] [Nontrivial R] [AddCommGroup 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