All coupling windows, behind `41` (round six, `ccP`)
ProvedJ6Seg.PJ.Rn.ccPcomplexity-theoryinteger-multiplicationkappa-improvement
All coupling windows, behind 41.
The following holds (Lean statement, in the scope of module Solutions.J6SegILPreJK15):
theorem J6Seg.PJ.Rn.ccP {v : Vr} (hN : N ≤ 2 ^ W) (hW2 : 2 ≤ W) (hv : BV W v)
(h20 : v 20 = Q) (h22 : v 22 = s)
(h23 : v 23 = t) (h25 : v 25 = α) (h26 : v 26 = B.w) (h28 : v 28 = m)
(hBs : B.s = s) (hs : 0 < s) (hB : BlocksOK s t B) (hQW : Q ≤ W + 1) (hwW : 2 * B.w + 1 < 2 ^ W)
(hcpl : ∀ i h, T.cpl i h = HvdH.expNeg Q (s ^ 2) (α ^ 2 * (HvdH.eKz s t i h).toNat))
(hL : D 30 = L.map (fun j : ℕ => (j : ℤ))) (hLm : L.length = m) (hsN : s ≤ N)
(hmc : m * (2 * B.w + 2) ≤ N)
(hLs : ∀ j ∈ L, j < s)
(h32 : D 32 = (List.range s).map (fun j => (B.st j : ℤ)))
(h33 : D 33 = (List.range s).map (fun j => (B.len j : ℤ)))
(h50 : D 50 = []) (h53 : D 53 = []) (h54 : D 54 = []) (hSCC : D SCC = [])
(bss : s * s ≤ 2 ^ W)
(hCB : ∀ r < m, CcBnd W s t α T B (Lg L r)) :
Rn PJ.ccP v D (fun v' => Fxk (6 :: 11 :: J6Seg.PJ.FR) v v' ∧ BV W v')
(update D 41 (JK.flatT (ccRows T B L m) ++ D 41)) (cCcP W N B.w m)
Context. B5 J side, part K15: all coupling windows onto 41
ccP = 11 := 2w+1; forL 50 28 6 (rows reads; push 2w+1 on SCC; iL); 11 := m(2w+2); mvK SCC 41
puts JK.flatT (rows of ccOf) in front of stack 41 (Rn.ccP).
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_Defs71
set_option autoImplicit false
set_option relaxedAutoImplicit false
set_option maxHeartbeats 1000000
open J6Seg J6Seg.PJ
open IntMul NLogN NLogN.KIL NLogN.RS Function J6Seg.PJ.E Finset
variable {Q W N : ℕ} {T : Tables} {B : Blocks} {L : List ℕ} {D : Cs} {m s t α : ℕ}
Formal statement
theorem J6Seg.PJ.Rn.ccP {v : Vr} (hN : N ≤ 2 ^ W) (hW2 : 2 ≤ W) (hv : BV W v)
(h20 : v 20 = Q) (h22 : v 22 = s)
(h23 : v 23 = t) (h25 : v 25 = α) (h26 : v 26 = B.w) (h28 : v 28 = m)
(hBs : B.s = s) (hs : 0 < s) (hB : BlocksOK s t B) (hQW : Q ≤ W + 1) (hwW : 2 * B.w + 1 < 2 ^ W)
(hcpl : ∀ i h, T.cpl i h = HvdH.expNeg Q (s ^ 2) (α ^ 2 * (HvdH.eKz s t i h).toNat))
(hL : D 30 = L.map (fun j : ℕ => (j : ℤ))) (hLm : L.length = m) (hsN : s ≤ N)
(hmc : m * (2 * B.w + 2) ≤ N)
(hLs : ∀ j ∈ L, j < s)
(h32 : D 32 = (List.range s).map (fun j => (B.st j : ℤ)))
(h33 : D 33 = (List.range s).map (fun j => (B.len j : ℤ)))
(h50 : D 50 = []) (h53 : D 53 = []) (h54 : D 54 = []) (hSCC : D SCC = [])
(bss : s * s ≤ 2 ^ W)
(hCB : ∀ r < m, CcBnd W s t α T B (Lg L r)) :
Rn PJ.ccP v D (fun v' => Fxk (6 :: 11 :: J6Seg.PJ.FR) v v' ∧ BV W v')
(update D 41 (JK.flatT (ccRows T B L m) ++ D 41)) (cCcP W N B.w m) := 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.ccP`, Solutions/J6SegILPreJK15.lean (lines 159–304) of the round-six development.