Round-six lemma `jcost_arith`
ProvedJ6Seg.Side.jcost_arithcomplexity-theoryinteger-multiplicationkappa-improvement
An auxiliary lemma of the round-six development, published as a separate node because its proof is long or shared.
The following holds (Lean statement, in the scope of module Solutions.J6SegJCost4):
theorem J6Seg.Side.jcost_arith {d pre post T m G w u E Ckn Lj Tot N K : ℕ}
(hK : K ≤ pre * post * Ckn + 100000 * E * (pre * post * (G + 1) + pre * (Lj + Tot + 2) + N + 2))
(hC : Ckn ≤ 3100 * (w + 1) * (m + 1) * u + 2)
(hL : Lj + Tot + 2 ≤ 3000 * (w + 1) * (m + 1))
(hG : G + 1 ≤ 2 * (m + 1))
(h1 : d * (pre * post * (m + 1)) ≤ 100 * T) (h2 : d * (pre * post) ≤ T) (h3 : d * N ≤ 198 * T)
(h4 : d ≤ T) (hpost : 1 ≤ post) (hE : 1 ≤ E) :
d * K ≤ T * (400000 * (w + 1) * u + 40000000000 * E * (w + 1))
Context. J cost 4: the J pass as a natural-number polynomial
kerC_le1:kerC Ckn B m post Lj 1 Tot pre N ≤ pre·post·Ckn + 10^5 (B+2)(pre·post·(m+1) + pre (Lj + Tot + 2) + N + 2);jcost_arith: the generic arithmetic;jcost_ax: on an axis, for everyuandB,d · kerC (jC … u + 2) B (2^fJ) post |TJ6| 1 |TJ| pre NJ ≤ T (4·10^5 (w+1) u + 4·10^10 (B+2)(w+1));jBody_ax:|jBody| ≤ 1460 w m + 24 m + G + 3w + 13.
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_K_Defs33 import Definitions.Def_IntMul_Kappa_R6_Defs1 import Mathlib import Definitions.Def_IntMul_HvdH_M_Defs8 import Definitions.Def_IntMul_MultitapeModel import Definitions.Def_IntMul_HvdH_Numeric import Definitions.Def_IntMul_HvdH_ExpApprox import Definitions.Def_IntMul_HvdH_RealExp import Definitions.Def_IntMul_HvdH_MachineRef import Definitions.Def_IntMul_HvdH_Twiddle import Definitions.Def_IntMul_HvdH_SApprox import Definitions.Def_IntMul_HvdH_DiagApprox import Definitions.Def_IntMul_HvdH_EApprox import Definitions.Def_IntMul_HvdH_JApprox import Definitions.Def_IntMul_HvdH_BApprox import Definitions.Def_IntMul_HvdH_FPApprox import Definitions.Def_IntMul_KappaFramework import Definitions.Def_IntMul_KappaJainData set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open Finset open IntMul NLogN IntMul.Kappa.R6
Formal statement
theorem J6Seg.Side.jcost_arith {d pre post T m G w u E Ckn Lj Tot N K : ℕ}
(hK : K ≤ pre * post * Ckn + 100000 * E * (pre * post * (G + 1) + pre * (Lj + Tot + 2) + N + 2))
(hC : Ckn ≤ 3100 * (w + 1) * (m + 1) * u + 2)
(hL : Lj + Tot + 2 ≤ 3000 * (w + 1) * (m + 1))
(hG : G + 1 ≤ 2 * (m + 1))
(h1 : d * (pre * post * (m + 1)) ≤ 100 * T) (h2 : d * (pre * post) ≤ T) (h3 : d * N ≤ 198 * T)
(h4 : d ≤ T) (hpost : 1 ≤ post) (hE : 1 ≤ E) :
d * K ≤ T * (400000 * (w + 1) * u + 40000000000 * E * (w + 1)) := 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.Side.jcost_arith`, Solutions/J6SegJCost4.lean (lines 31–94) of the round-six development.