Round-six lemma `Dapprox_bound`
ProvedIntMul.HvdH.DiagPf.Dapprox_boundcomplexity-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.KFMBaseDiag):
theorem IntMul.HvdH.DiagPf.Dapprox_bound (p s t α : ℕ) (hs : 0 < s) (hα : 2 ≤ α) (hαp : α ^ 2 ≤ p)
(U : ℕ → ℤ × ℤ) (hU : ∀ l, ‖toC (U l)‖ ≤ 2 ^ p) (l : ℕ) :
‖toC (Dapprox p s t α U l) -
((Real.exp (Real.pi * α ^ 2 * ((t * l : ℝ) / s - ⌊(t * l : ℝ) / s + 1 / 2⌋) ^ 2) /
2 ^ (2 * α ^ 2 - 2) : ℝ) : ℂ) * toC (U l)‖ < 3
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 Definitions.Def_IntMul_HvdH_Numeric import Definitions.Def_IntMul_HvdH_ExpApprox import Definitions.Def_IntMul_HvdH_Twiddle import Definitions.Def_IntMul_HvdH_RealExp import Definitions.Def_IntMul_HvdH_DiagApprox set_option autoImplicit false set_option relaxedAutoImplicit false set_option maxHeartbeats 1000000 open IntMul IntMul.HvdH IntMul.HvdH.DiagPf open Complex open IntMul.HvdH
Formal statement
theorem IntMul.HvdH.DiagPf.Dapprox_bound (p s t α : ℕ) (hs : 0 < s) (hα : 2 ≤ α) (hαp : α ^ 2 ≤ p)
(U : ℕ → ℤ × ℤ) (hU : ∀ l, ‖toC (U l)‖ ≤ 2 ^ p) (l : ℕ) :
‖toC (Dapprox p s t α U l) -
((Real.exp (Real.pi * α ^ 2 * ((t * l : ℝ) / s - ⌊(t * l : ℝ) / s + 1 / 2⌋) ^ 2) /
2 ^ (2 * α ^ 2 - 2) : ℝ) : ℂ) * toC (U l)‖ < 3 := 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 `IntMul.HvdH.DiagPf.Dapprox_bound`, Solutions/KFMBaseDiag.lean (lines 52–143) of the round-six development.