HvdH Proposition 5.4:
OpenIntMul.HvdH.proposition_5_4Fix an integer . There is a deterministic multitape Turing machine (in the model of Definitions.Def_IntMul_MultitapeModel) that correctly multiplies -bit integers for every , and a constant (depending on and ) such that the following holds. For every , let
let be the unique power of two with , and let be the unique power of two with . Writing for the worst-case running time of on -bit inputs,
This is the recursive step of the Harvey–van der Hoeven algorithm (eq. (5.14)): an -bit product is reduced, via Agarwal–Cooley, Gaussian resampling (Theorem 4.1) and Bluestein/Rader/Kronecker substitution (Propositions 5.2, 5.3), to multiplications of size , plus overhead. The same machine appears on both sides (it calls itself recursively).
Formalization notes: is the natural logarithm; is a real power; is Nat.clog 2 n; the universally quantified are pinned down uniquely by the hypotheses, so the statement is never vacuous. The constant is an arbitrary real (no sign restriction).
import Mathlib import Definitions.Def_IntMul_MultitapeModel
namespace IntMul.HvdH
theorem proposition_5_4 (d : ℕ) (hd : 2 ≤ d) :
∃ M : MultitapeTM, (∀ n : ℕ, 1 ≤ n → ∃ τ : ℝ, MultipliesAt M n τ) ∧
∃ C : ℝ, ∀ n : ℕ, 2 ^ (d ^ 12) ≤ n →
∀ b p T r : ℕ, b = Nat.clog 2 n → p = 6 * b →
(∃ k : ℕ, T = 2 ^ k) → 4 * (n : ℝ) / b ≤ T → (T : ℝ) < 8 * (n : ℝ) / b →
(∃ j : ℕ, r = 2 ^ j) → (T : ℝ) ^ ((1 : ℝ) / d) ≤ r → (r : ℝ) < 2 * (T : ℝ) ^ ((1 : ℝ) / d) →
sInf {τ : ℝ | MultipliesAt M n τ} <
12 * (T : ℝ) / r * sInf {τ : ℝ | MultipliesAt M (3 * r * p) τ} +
C * ((n : ℝ) * Real.log n) := by sorry
end IntMul.HvdH