Idempotents of equal rank are similar (round six, `idem_similar`)
ProvedIntMul.Kappa.R6.Bit.NB.idem_similarcomplexity-theoryinteger-multiplicationkappa-improvement
Idempotents of equal rank are similar.
The following holds (Lean statement, in the scope of module Solutions.R6BitNBSim):
theorem IntMul.Kappa.R6.Bit.NB.idem_similar (A B : Matrix (Fin n) (Fin n) ℚ) (hA : A * A = A) (hB : B * B = B)
(hr : A.rank = B.rank) : ∃ Q : Matrix (Fin n) (Fin n) ℚ, IsUnit Q.det ∧ Q * A = B * Q
Context. Round six, bit network: similarity of idempotents, explicit corner idempotent, transitivity
idem_similar: idempotent matrices overℚof equal rank are similar.eIdem n r: an explicit idempotent of rankrwhose top-right(n-r)-corner is the identity (forn < 2r).conj_rank_one: fory ⬝ x = 1 = y' ⬝ x'some invertibleQhasQ (x yᵀ) Q⁻¹ = x' y'ᵀ.
Formalization Note. Part of the Lean formalization of the round-six κ-improvement (integer-multiplication-kappa campaign, target IntMul.Kappa.jain_round6_framework). The statement is copied verbatim from the Lean development; the platform node carries the same declaration name. Definitions it mentions live in the IntMul_Kappa_R6_Defs* bundles (on top of the published κ bundles IntMul_Kappa_K_Defs*).
Preamble
-- Round-six κ development (integer-multiplication-kappa), generated by skeleton subtraction.
import Definitions.Def_IntMul_Kappa_K_Defs33
import Definitions.Def_IntMul_Kappa_R6_Defs1
import Mathlib
import Definitions.Def_IntMul_KappaFramework
set_option autoImplicit false
set_option relaxedAutoImplicit false
set_option maxHeartbeats 1000000
open IntMul IntMul.Kappa IntMul.Kappa.R6
open Matrix Finset
variable {n : ℕ}
Formal statement
theorem IntMul.Kappa.R6.Bit.NB.idem_similar (A B : Matrix (Fin n) (Fin n) ℚ) (hA : A * A = A) (hB : B * B = B)
(hr : A.rank = B.rank) : ∃ Q : Matrix (Fin n) (Fin n) ℚ, IsUnit Q.det ∧ Q * A = B * Q := by sorrySource
S. Jain, round-six networks for the integer-multiplication κ-improvement campaign (https://github.com/Swapnil-jain/integer-mult-kappa, commit 5868dc7) and D. Colkitt, integer-mult-bounds (https://github.com/CrocSwap/integer-mult-bounds); target `IntMul.Kappa.jain_round6_framework`. Lean declaration `IntMul.Kappa.R6.Bit.NB.idem_similar`, Solutions/R6BitNBSim.lean (lines 28–77) of the round-six development.