One axis (round six, `valAx6`)
ProvedJ6Seg.Val.valAx6complexity-theoryinteger-multiplicationkappa-improvement
One axis.
The following holds (Lean statement, in the scope of module Solutions.J6SegVal6):
theorem J6Seg.Val.valAx6 (hc : ValCond6 ap)
(hT : J6Seg.Val.TabB (2 ^ (axQ6 P n src k + (axR6 P n + 2))) (axl6 P n)
(TT (axQ6 P n src k) (axR6 P n) (axs6 src k) (axt6 P n k) (axα6 P n)))
(hJ : JAx6 P n src k) :
(∀ L : List GI, L.length = (List.ofFn (tD6 P n D)).prod → GB (pP6 P n + 2) L →
GB (axwd6 P n src k ap) (arrS6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrY6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrJ6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrW6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrWp6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrY26 P n src D k L) ∧
KR.AB (axX6 P n src k ap) (arrS6 P n src D k L) ∧
KR.AB (axX6 P n src k ap) (arrWp6 P n src D k L) ∧
∀ b < axpre6 P n D k, ∀ c < axpost6 P n D k,
axJPre6 P n src k ap (lineAt (axG6 P n src k) (axpost6 P n D k) (arrJ6 P n src D k L) b c)) ∧
(∀ x : List GI, axJPre6 P n src k ap x →
GB (axwd6 P n src k ap) (liftG (jKer (axQ6 P n src k) (axR6 P n) (axs6 src k) (axt6 P n k)
(axl6 P n) (axw6 P n) (axα6 P n) (axw6 P n) (axG6 P n src k)) x))
Context. B-line value bounds 6: ValNeed6 (assembly)
valAx6: one axis, fromTabB(the stage tables≤ 2^(Q+R+2)),JAx6andValCond6.valNeed6_of:ChunkTabBnd6 P → JNeed6 P → ∀ ap, ValCond6 ap → ValNeed6 P ap.
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_Defs67 set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open J6Seg J6Seg.Val open IntMul NLogN NLogN.KIL NLogN.KFB IntMul.Kappa.R6 Function J6Seg variable (P : Prm) (n : ℕ) (src : ℕ → ℕ) (D k : ℕ) (ap : AxPlan6)
Formal statement
theorem J6Seg.Val.valAx6 (hc : ValCond6 ap)
(hT : J6Seg.Val.TabB (2 ^ (axQ6 P n src k + (axR6 P n + 2))) (axl6 P n)
(TT (axQ6 P n src k) (axR6 P n) (axs6 src k) (axt6 P n k) (axα6 P n)))
(hJ : JAx6 P n src k) :
(∀ L : List GI, L.length = (List.ofFn (tD6 P n D)).prod → GB (pP6 P n + 2) L →
GB (axwd6 P n src k ap) (arrS6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrY6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrJ6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrW6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrWp6 P n src D k L) ∧
GB (axwd6 P n src k ap) (arrY26 P n src D k L) ∧
KR.AB (axX6 P n src k ap) (arrS6 P n src D k L) ∧
KR.AB (axX6 P n src k ap) (arrWp6 P n src D k L) ∧
∀ b < axpre6 P n D k, ∀ c < axpost6 P n D k,
axJPre6 P n src k ap (lineAt (axG6 P n src k) (axpost6 P n D k) (arrJ6 P n src D k L) b c)) ∧
(∀ x : List GI, axJPre6 P n src k ap x →
GB (axwd6 P n src k ap) (liftG (jKer (axQ6 P n src k) (axR6 P n) (axs6 src k) (axt6 P n k)
(axl6 P n) (axw6 P n) (axα6 P n) (axw6 P n) (axG6 P n src k)) x)) := 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.Val.valAx6`, Solutions/J6SegVal6.lean (lines 75–168) of the round-six development.