Convolution theorem for the DFT on
ProvedIntMul.HvdH.dft_cyclic_convfourier-analysisinteger-multiplication
Let and let . Write for the (unnormalised) discrete Fourier transform, as in Mathlib's ZMod.dft, and for cyclic convolution. Then for every ,
This is equation (2.1) / §2.4 of Harvey–van der Hoeven: it is how the algorithm turns a cyclic convolution (an integer product after chunking) into pointwise products of DFTs.
Preamble
import Mathlib
Formal statement
namespace IntMul.HvdH
theorem dft_cyclic_conv {N : ℕ} [NeZero N] (u v : ZMod N → ℂ) (k : ZMod N) :
ZMod.dft (fun m => ∑ j, u j * v (m - j)) k = ZMod.dft u k * ZMod.dft v k := by sorry
end IntMul.HvdHSource
Harvey, van der Hoeven, Integer multiplication in time O(n log n), Annals of Math. 193 (2021), https://hal.science/hal-02070778, Sections 2.4 and 5.3