Jordan canonical form: existence and uniqueness of the block multiset
ProvedHefferonLinAlg.jordan_canonical_formLet be an matrix over . There is exactly one multiset of pairs arising as the Jordan block data of : some Jordan form of has block multiset , and every Jordan form of has that same multiset.
Existence is Hefferon's Theorem 2.8 — every square complex matrix is similar to a Jordan matrix. Uniqueness is his Remark 2.9, which observes that to be a genuine canonical form for matrix similarity the Jordan form must be unique, and which the book states but does not prove. Together they are what the phrase canonical form means.
Passing to a multiset is what expresses 'unique up to reordering the blocks': the blocks may be listed in any order, but which blocks occur, and with what multiplicity, is determined by . Requiring every block to be nonempty is what makes this true — empty blocks could otherwise be padded on carrying arbitrary eigenvalues. Mathlib has the generalized eigenspace decomposition but no Jordan canonical form, so this is a genuine formalization target.
import Mathlib import Definitions.Def_HefferonLinAlg_jordan open Matrix
namespace HefferonLinAlg
theorem jordan_canonical_form
{n : ℕ} (A : Matrix (Fin n) (Fin n) ℂ) :
∃! B : Multiset (ℕ × ℂ),
∃ (k : ℕ) (sz : Fin k → ℕ) (lam : Fin k → ℂ),
IsJordanFormOf A sz lam ∧ jordanBlocks sz lam = B := by
sorry
end HefferonLinAlgRead-back
What the Lean code literally says, in plain math · claude-opus-5
Read-back: HefferonLinAlg.jordan_canonical_form
What the declaration asserts. For every natural number (implicitly quantified, including ) and every matrix with complex entries, indexed by in both rows and columns, there exists exactly one finite multiset of pairs having the following property:
there exist a natural number , a function , and a function such that "is a Jordan form of" (unfolded below) and the multiset — one entry per index , counted with multiplicity, order discarded — is equal to .
Unfolding " is a Jordan form of ". This is the conjunction of two conditions:
- Positivity of every block size: for all .
- Existence of a relabelling and a similarity: there exists a bijection
(the disjoint-union index set of the blocks) and there exists an complex matrix with a unit of (equivalently ) such that
where is the block-diagonal matrix on the index set described next, and is the total inverse operation (a genuine two-sided inverse here, since is a unit). Note the direction of the conjugation: it is that equals the relabelled Jordan matrix, not .
Unfolding the Jordan matrix . is indexed by pairs and is block-diagonal:
where the Jordan block of size with eigenvalue has entries
i.e. on the diagonal and 's on the subdiagonal (below the diagonal), zeros elsewhere.
Exactly what is claimed unique. The uniqueness is asserted only for the multiset . In particular the statement does not claim uniqueness of:
- the number of blocks , or the functions and themselves (these are existentially quantified inside the property, so many different may realise the same );
- the relabelling bijection ;
- the change-of-basis matrix .
Because the multiset forgets the ordering of the blocks, the assertion is that the unordered collection of (block size, eigenvalue) pairs, with multiplicities, is determined by .
What the uniqueness statement packages together. The "exactly one" claim carries both halves: (i) existence — at least one such multiset arises, i.e. every complex square matrix admits a decomposition of the above kind; and (ii) uniqueness — any two multisets arising this way from coincide.
Degenerate and implicit cases.
- is included: is the empty matrix, and with the empty block data satisfies the property vacuously (the positivity condition is vacuous, the empty bijection exists, and the empty matrix is similar to itself), so is the empty multiset.
- is permitted in general (the empty multiset ); it is compatible with the property only when the index set has elements.
- The existence of the bijection forces ; this is a consequence of the statement rather than something written separately.
- The positivity condition rules out zero-size blocks, so no entry of has first coordinate .
- Nothing in the statement requires the values to be distinct, nor states explicitly that they are eigenvalues of , nor imposes any ordering on block sizes or eigenvalues.
- The multiset ranges over pairs whose first coordinate is a natural number and second coordinate a complex number; multiplicities are significant, order is not.
- The scalar field is fixed to and the index type to a finite range ; no statement is made over other rings or index types.
Proof status. The declaration's proof is not supplied; the body is left as an admitted goal.
Confirmed by the mission captain (proposal self-audit).