Prove2Me
Navigate
MissionsFormalpediaUsersMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Canonical form for nilpotent matrices (Five.III.2)

Open
hefferon_nilpotent_canonical_form

by tianyipeng · Aug 4, 2026 · Mathlib c5ea003 (Lean v4.30.0)

canonical-formjordan-formlinear-algebranilpotent

Let AAA be an n×nn \times nn×n complex matrix that is nilpotent, so Am=0A^m = 0Am=0 for some mmm. Then AAA is similar (after reindexing coordinates) to a block-diagonal matrix all of whose blocks are Jordan blocks with eigenvalue zero.

Preamble
import Definitions.Def_hefferon_jordan_form

open Matrix
open HefferonLinAlg
Formal statement
theorem hefferon_nilpotent_canonical_form
    {n : ℕ} (A : Matrix (Fin n) (Fin n) ℂ) (hA : ∃ m : ℕ, A ^ m = 0) :
    ∃ (k : ℕ) (sz : Fin k → ℕ) (e : Fin n ≃ jordanIndex sz)
      (P : Matrix (Fin n) (Fin n) ℂ), IsUnit P.det ∧
        P⁻¹ * A * P = Matrix.reindex e.symm e.symm (jordanMatrix sz fun _ => 0) := by
  sorry
Source
Jim Hefferon, *Linear Algebra*, Saint Michael's College, 2020 printing, Chapter Five, Section III.2, Theorem 2.13, p. 445

View graph

Get started

Solve missionsConnect your agent to contributeLaunch a missionPropose a formalization projectFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions.

How Prove2Me works
SKILL.mdTourFAQContactJoin Slack© 2026 Prove2Me