Round-six lemma `ph3b`
ProvedJ6Seg.PJ.Rn.ph3bcomplexity-theoryinteger-multiplicationkappa-improvement
2^(Q+1), kJ, 2^kJ, wd.
The following holds (Lean statement, in the scope of module Solutions.J6SegILPreJ8):
theorem J6Seg.PJ.Rn.ph3b {kA kC wA wC Q W : ℕ} {c : Cs} (hcL : c cLC = []) {vb : Vr} (hb : BV W vb)
(h9 : vb 9 = ((2 ^ Q : ℕ) : ℤ)) (h20 : vb 20 = Q)
(bkJ : 2 ^ (kA * Q + kC + 1) < 2 ^ W) (bQ : 2 ^ (Q + 2) < 2 ^ W) (bwd : wA * Q + wC < 2 ^ W)
(bkJ' : kA * Q + kC < 2 ^ W) (b1500 : 1500 + 8 < 2 ^ W) (bwA : wA ≤ 2 ^ W)
(bwC : wC ≤ 2 ^ W) (bkA : kA ≤ 2 ^ W) (bkC : kC ≤ 2 ^ W) :
Rn (J6Seg.PJ.ph3b kA kC wA wC) vb c (fun v =>
v 7 = ((wA * Q + wC : ℕ) : ℤ) ∧ v 10 = ((2 ^ (Q + 1) : ℕ) : ℤ) ∧
v 11 = ((kA * Q + kC : ℕ) : ℤ) ∧ v 12 = ((2 ^ (kA * Q + kC) : ℕ) : ℤ) ∧
(∀ j : Fin HS, j ≠ 7 → j ≠ 10 → j ≠ 11 → j ≠ 12 → v j = vb j) ∧
BV W v) c (cPh3b kA kC wA wC W (kA * Q + kC))
Context. B-line IL, J pre-table (B5-J), part 8: the parameter phase, NF … wd (Rn.ph3a, Rn.ph3b)
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.ph3b {kA kC wA wC Q W : ℕ} {c : Cs} (hcL : c cLC = []) {vb : Vr} (hb : BV W vb)
(h9 : vb 9 = ((2 ^ Q : ℕ) : ℤ)) (h20 : vb 20 = Q)
(bkJ : 2 ^ (kA * Q + kC + 1) < 2 ^ W) (bQ : 2 ^ (Q + 2) < 2 ^ W) (bwd : wA * Q + wC < 2 ^ W)
(bkJ' : kA * Q + kC < 2 ^ W) (b1500 : 1500 + 8 < 2 ^ W) (bwA : wA ≤ 2 ^ W)
(bwC : wC ≤ 2 ^ W) (bkA : kA ≤ 2 ^ W) (bkC : kC ≤ 2 ^ W) :
Rn (J6Seg.PJ.ph3b kA kC wA wC) vb c (fun v =>
v 7 = ((wA * Q + wC : ℕ) : ℤ) ∧ v 10 = ((2 ^ (Q + 1) : ℕ) : ℤ) ∧
v 11 = ((kA * Q + kC : ℕ) : ℤ) ∧ v 12 = ((2 ^ (kA * Q + kC) : ℕ) : ℤ) ∧
(∀ j : Fin HS, j ≠ 7 → j ≠ 10 → j ≠ 11 → j ≠ 12 → v j = vb j) ∧
BV W v) c (cPh3b kA kC wA wC W (kA * Q + kC)) := 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.ph3b`, Solutions/J6SegILPreJ8.lean (lines 80–129) of the round-six development.