Round-six lemma `ph2`
ProvedJ6Seg.PJ.Rn.ph2complexity-theoryinteger-multiplicationkappa-improvement
R, kF, λF, w, λ.
The following holds (Lean statement, in the scope of module Solutions.J6SegILPreJ7):
theorem J6Seg.PJ.Rn.ph2 {s t p α d W : ℕ} {c : Cs} (hcL : c cLC = []) {vb : Vr} (hb : BV W vb)
(h1 : vb 1 = p) (h2 : vb 2 = d) (hp : p < 2 ^ W) (hd : 2 * d + 8 < 2 ^ W)
(hl : 2 * lamF d + 8 < 2 ^ W) (hw : wF d < 2 ^ W) :
Rn J6Seg.PJ.ph2 vb c (fun v => v = update (update (update (update (update (update vb 21 ((p / 7 : ℕ) : ℤ))
5 (kF d)) 6 (lamF d)) 26 (wF d)) 24 1) 24 (lamP d) ∧ BV W v) c (cPh2 W d)
Context. B-line IL, J pre-table (B5-J), part 7: the parameter phase
parP Z kA kC wA wC: from the axis descriptor [k, pre, post, s, t, p, α, d] on Z, the
registers (ParV)
1 p 2 d 3 pre 4 post 5 kF 6 λF 7 wd = wA·Q+wC 9 2^Q 10 2^(Q+1)
11 kJ = kA·Q+kC 12 2^kJ 20 Q 21 R = p/7 22 s 23 t 24 λ 25 α 26 w = 7 kF
(Q = segPF p d s, λ = lamP d), every other stack unchanged (Rn.parP).
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_Defs65 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open J6Seg J6Seg.PJ open IntMul NLogN NLogN.KIL NLogN.RS J6Seg.PJ.E Function
Formal statement
theorem J6Seg.PJ.Rn.ph2 {s t p α d W : ℕ} {c : Cs} (hcL : c cLC = []) {vb : Vr} (hb : BV W vb)
(h1 : vb 1 = p) (h2 : vb 2 = d) (hp : p < 2 ^ W) (hd : 2 * d + 8 < 2 ^ W)
(hl : 2 * lamF d + 8 < 2 ^ W) (hw : wF d < 2 ^ W) :
Rn J6Seg.PJ.ph2 vb c (fun v => v = update (update (update (update (update (update vb 21 ((p / 7 : ℕ) : ℤ))
5 (kF d)) 6 (lamF d)) 26 (wF d)) 24 1) 24 (lamP d) ∧ BV W v) c (cPh2 W d) := 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.PJ.Rn.ph2`, Solutions/J6SegILPreJ7.lean (lines 180–220) of the round-six development.