The seven-pass machine computes the `B` line pass (round six, `r6_machine`)
ProvedJ6Seg.r6_machinecomplexity-theoryinteger-multiplicationkappa-improvement
The seven-pass machine computes the B line pass (round-six regime).
The following holds (Lean statement, in the scope of module Solutions.J6SegSw4):
theorem J6Seg.r6_machine (P : Prm) (hP : P.Ok) : ∃ n₁ : ℕ, ∀ n, n₁ ≤ n → ∀ src : ℕ → ℕ,
SrcOK6 P n src → ∀ D : ℕ, dP6 P n = D + 1 →
∀ [∀ i, NeZero (sD6 src D i)] [∀ i, NeZero (tD6 P n D i)],
∀ ys : List GI, ys.length = (List.ofFn (tD6 P n D)).prod →
pipeSweep (pipe6 P n src D) (D + 1) ys =
tensorGo (mapsLine6 P n src D) (List.ofFn (tD6 P n D)) ys
Context. B-line machine, sweep 4: the machine computes tensorGo mapsLine6
pipeSweep: the machine applies an axis programFp kfork = 0, 1, …in place;pipeSweep_eq: if everyFp kis the in-place axis map ofF k, the machine issweepL;sweepL_tensorGo':sweepLof line maps of slice form istensorGo;r6_maps_eq: in the round-six regimemapsLine6 = mapsBsandλ ∣ t_i,s_i < t_i;r6_machine: in the round-six regime, the seven-pass machine (pipe6, axes0..d-1) computestensorGo (mapsLine6 P n src D)on every array of the right length.
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_R6_Defs62 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open J6Seg open IntMul IntMul.HvdH IntMul.HvdH.Ref NLogN.KFM NLogN.KFY IntMul.Kappa.R6 open NLogN.KFB (GI gflat)
Formal statement
theorem J6Seg.r6_machine (P : Prm) (hP : P.Ok) : ∃ n₁ : ℕ, ∀ n, n₁ ≤ n → ∀ src : ℕ → ℕ,
SrcOK6 P n src → ∀ D : ℕ, dP6 P n = D + 1 →
∀ [∀ i, NeZero (sD6 src D i)] [∀ i, NeZero (tD6 P n D i)],
∀ ys : List GI, ys.length = (List.ofFn (tD6 P n D)).prod →
pipeSweep (pipe6 P n src D) (D + 1) ys =
tensorGo (mapsLine6 P n src D) (List.ofFn (tD6 P n D)) ys := 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 `J6Seg.r6_machine`, Solutions/J6SegSw4.lean (lines 189–271) of the round-six development.