Round-six lemma `T0n_eq`
ProvedNLogN.KFL.T0n_eqcomplexity-theoryinteger-multiplicationkappa-improvement
An auxiliary lemma of the round-six development, published as a separate node because its proof is long or shared.
The following holds (Lean statement, in the scope of module Solutions.KFLMath):
theorem NLogN.KFL.T0n_eq {K : ℕ} (hK : 1 ≤ K) (ρ : ℕ) (x y : ℕ) :
∀ n, T0n K ρ n x y = ((y ^^^ (x &&& selM K ρ n) : ℕ) : ℤ)
Context. KFL §2: Lemma 13 on chunk triples (canonical layout x, y, z = slots 0, 1, 2)
selM K ρ n = Σ_{i<n} 2^{ρ+iK}(the selected-position mask),testBit_selM.T0y_eq: the ideal mapT0ofButterflyPackedisy ↦ y ⊕ (x ∧ selM (f-1));guardN_xor: it preserves every guard.- The pull maps of the eight lines as triple maps
lineP(realised byrot2, after a slot swap for they-lines), their compositeFSc = lineP l₁ ∘ … ∘ lineP l₈and the forwardS0c;S0c_FSc,FSc_S0c(inverse bijections),FSc_good(off the guard setFSc = T0c). - The correction:
keyc = T0c ∘ FSc;bad_keyc(bad to bad),keyc_S0c(onto the bad set),T0c_keyc(the corrected pull isT0c). T0c_XLc: with the last selected bit (flip1) the composite is the row additionRAc.
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_HvdH_M_Defs8 import Definitions.Def_IntMul_MultitapeModel set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open NLogN NLogN.KFL open Butterfly
Formal statement
theorem NLogN.KFL.T0n_eq {K : ℕ} (hK : 1 ≤ K) (ρ : ℕ) (x y : ℕ) :
∀ n, T0n K ρ n x y = ((y ^^^ (x &&& selM K ρ n) : ℕ) : ℤ) := 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 `NLogN.KFL.T0n_eq`, Solutions/KFLMath.lean (lines 120–173) of the round-six development.