The top round (`top_le`)
ProvedNLogN.KFV.top_lecomplexity-theoryinteger-multiplicationkappa-improvement
The top round.
The following holds (Lean statement, in the scope of module Solutions.KFV57CostR):
theorem NLogN.KFV.top_le (hK : 0 < K) (hℓ : 1 ≤ ℓ) {W B : ℕ} (hDW : D ≤ W)
(hS : 10 ^ 12 * (B + 2) ^ 3 ≤ 2 ^ ℓ) :
cTopC D ℓ K long ((Ex.lit 0 : Ex HS).size + (Ex.reg gNL : Ex HS).size +
(Ex.add (.reg gNn) (.neg (.reg gNL)) : Ex HS).size) W B ≤
2 * 10 ^ 11 * (D + 1) * (W + 1) * (2 ^ nB D ℓ K long * 2 ^ ℓ)
Context. KFV §57: cost of the rounds of the uniform Lemma 16 procedures
With X = 2^n · 2^ℓ (n = |tgtL|) the number of coefficients and S a bound for the small
quantities (B + 2, zsz U + 2, D ℓ + 1, …) with 10^12 S^3 ≤ 2^ℓ:
leafR_le: a prefix leaf costs≤ 10^11 (D+1)(W+1) X;top_le: the top round costs≤ 10^12 (D+1)(W+1) X;twist_le: a twist costs≤ 10^10 (W+1) X;cFwd_le,cOpp_le: the forward / opposite procedure costs≤ 10^13 (W+1) X (K (D+1) + ℓ) + ℓ · cCh.
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_Twiddle import Definitions.Def_IntMul_HvdH_MachineRef set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open NLogN NLogN.KFV open IntMul NLogN.RS NLogN.KIL NLogN.KFD NLogN.KFB NLogN.KFH NLogN.KFC NLogN.KFT Synth AModel AModelL12 GlueLayout GlueP14 GlueError variable (D ℓ K : ℕ) [NeZero D] (long : Fin D → Bool)
Formal statement
theorem NLogN.KFV.top_le (hK : 0 < K) (hℓ : 1 ≤ ℓ) {W B : ℕ} (hDW : D ≤ W)
(hS : 10 ^ 12 * (B + 2) ^ 3 ≤ 2 ^ ℓ) :
cTopC D ℓ K long ((Ex.lit 0 : Ex HS).size + (Ex.reg gNL : Ex HS).size +
(Ex.add (.reg gNn) (.neg (.reg gNL)) : Ex HS).size) W B ≤
2 * 10 ^ 11 * (D + 1) * (W + 1) * (2 ^ nB D ℓ K long * 2 ^ ℓ) := 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 `NLogN.KFV.top_le`, Solutions/KFV57CostR.lean (lines 84–126) of the round-six development.