minimal polynomial diagonalizability test
Here is the cleanest test for diagonalizability ever discovered: an operator T is diagonalizable if and only if its minimal polynomial factors into DISTINCT linear factors — that is, m(x) = (x - lambda_1)(x - lambda_2)...(x - lambda_k) with all lambda_i different and NO repeated roots. Squared factors are the exact obstruction.
Intuitively, a repeated factor (x - lambda)^2 in the minimal polynomial signals that some vector needs to be hit by (T - lambda I) twice before it dies — a generalized eigenvector that is not an honest eigenvector. That is precisely the shear inside a Jordan block, the thing diagonal matrices cannot do. No repeated factor means every vector decomposes into genuine eigenvectors, which is diagonalizability.
Why the proof works: if m has distinct roots, the factors (x - lambda_i) are pairwise coprime, so by the primary decomposition the space splits into the kernels of (T - lambda_i I), each of which is an ordinary eigenspace; stacking their bases gives an eigenbasis. Conversely, if T diagonalizes with distinct eigenvalues lambda_i, then prod (x - lambda_i) already annihilates T, so the minimal polynomial divides it and hence also has distinct linear roots.
Compared to the Vol I test (count eigenvectors and check whether geometric multiplicities sum to n), this is often faster and cleaner: you compute one polynomial and inspect it for repeated roots. A handy special case: any operator with n distinct eigenvalues is automatically diagonalizable, since then chi itself already has distinct roots and forces m to as well.
Reading diagonalizability straight off the minimal polynomial: distinct linear factors for A, a squared factor for the defective B.
Generalize the same idea: T is SEMISIMPLE iff its minimal polynomial is squarefree (a product of distinct irreducibles, not necessarily linear). Over an algebraically closed field semisimple and diagonalizable coincide, since all irreducibles are then linear.