# mathlib3documentation

linear_algebra.matrix.charpoly.eigs

# Eigenvalues are characteristic polynomial roots. #

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

In fields we show that:

• matrix.det_eq_prod_roots_charpoly_of_splits: the determinant (in the field of the matrix) is the product of the roots of the characteristic polynomial if the polynomial splits in the field of the matrix.
• matrix.trace_eq_sum_roots_charpoly_of_splits: the trace is the sum of the roots of the characteristic polynomial if the polynomial splits in the field of the matrix.

In an algebraically closed field we show that:

• matrix.det_eq_prod_roots_charpoly: the determinant is the product of the roots of the characteristic polynomial.
• matrix.trace_eq_sum_roots_charpoly: the trace is the sum of the roots of the characteristic polynomial.

Note that over other fields such as ℝ, these results can be used by using A.map (algebra_map ℝ ℂ) as the matrix, and then applying ring_hom.map_det.

The two lemmas matrix.det_eq_prod_roots_charpoly and matrix.trace_eq_sum_roots_charpoly are more commonly stated as trace is the sum of eigenvalues and determinant is the product of eigenvalues. Mathlib has already defined eigenvalues in linear_algebra.eigenspace as the roots of the minimal polynomial of a linear endomorphism. These do not have correct multiplicity and cannot be used in the theorems above. Hence we express these theorems in terms of the roots of the characteristic polynomial directly.

## TODO #

The proofs of det_eq_prod_roots_charpoly_of_splits and trace_eq_sum_roots_charpoly_of_splits closely resemble norm_gen_eq_prod_roots and trace_gen_eq_sum_roots respectively, but the dependencies are not general enough to unify them. We should refactor polynomial.prod_roots_eq_coeff_zero_of_monic_of_split and polynomial.sum_roots_eq_next_coeff_of_monic_of_split to assume splitting over an arbitrary map.

theorem matrix.det_eq_prod_roots_charpoly_of_splits {n : Type u_1} [fintype n] [decidable_eq n] {R : Type u_2} [field R] {A : n R} (hAps : A.charpoly) :
theorem matrix.trace_eq_sum_roots_charpoly_of_splits {n : Type u_1} [fintype n] [decidable_eq n] {R : Type u_2} [field R] {A : n R} (hAps : A.charpoly) :
theorem matrix.det_eq_prod_roots_charpoly {n : Type u_1} [fintype n] [decidable_eq n] {R : Type u_2} [field R] (A : n R)  :
theorem matrix.trace_eq_sum_roots_charpoly {n : Type u_1} [fintype n] [decidable_eq n] {R : Type u_2} [field R] (A : n R)  :