Algebraic multiplicity is at most geometric multiplicity times the index
ProvedJordanBound.algMult_le_geomMult_mul_indexLet be an complex matrix and let . Write
- for the algebraic multiplicity of , its multiplicity as a root of the characteristic polynomial of ;
- for the geometric multiplicity;
- for the index of , its multiplicity as a root of the minimal polynomial of .
The claim is
Equivalently, . The multiplicative form is the one stated, so that no truncated division on the naturals is involved.
Why it holds. In a Jordan form of , the blocks carrying the eigenvalue number exactly , each has size at most , and their sizes sum to . A sum of terms each at most is at most . When is not an eigenvalue of every quantity is and the inequality is trivial, so no hypothesis on is needed.
Reduction. This should be a short consequence of results already on the platform rather than new machinery: the string basis for a nilpotent map and the Jordan basis for a complex linear map are proved here, as is the formula recovering the number of Jordan blocks of each size from the kernel dimensions . What remains is to read as the block count, as the largest block size, and as the total.
Where it is used. This is equation (5) of Klamka's 1972 note, the step that lets his sufficient conditions for uncontrollability and unobservability of a linear time-invariant system be checked from the characteristic and minimal polynomials alone, without computing any eigenvalue. The consequence he draws is that if exceeds the rank of the input matrix , then the Hautus pencil cannot have full rank and the system is uncontrollable. That second half is elementary once the pencil characterisation of controllability is available; this inequality is the half that needs the block structure, and it is the only thing standing between the pencil argument and Klamka's printed hypothesis.
import Mathlib open Matrix
namespace JordanBound
theorem algMult_le_geomMult_mul_index
{n : ℕ} (A : Matrix (Fin n) (Fin n) ℂ) (μ : ℂ) :
A.charpoly.rootMultiplicity μ
≤ Module.finrank ℂ
(LinearMap.ker (μ • (1 : Matrix (Fin n) (Fin n) ℂ) - A).mulVecLin)
* (minpoly ℂ A).rootMultiplicity μ := by
sorry
end JordanBound