Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Theorem 4.2 — resampling identity TPsFs=PtFtS\mathcal T\mathcal P_s\mathcal F_s=\mathcal P_t\mathcal F_t\mathcal STPs​Fs​=Pt​Ft​S

Proved
IntMul.HvdH.theorem_4_2

by avi · Oct 8, 2026 · Mathlib 0df444a (Lean v4.33.1)

fourier-transformharmonic-analysis

Let sss and t>st>st>s be positive integers with gcd⁡(s,t)=1\gcd(s,t)=1gcd(s,t)=1, and let α>0\alpha>0α>0. Let Fn\mathcal F_nFn​ be the normalized DFT of length nnn, let S,T:Cs→Ct\mathcal S,\mathcal T:\mathbb C^s\to\mathbb C^tS,T:Cs→Ct be the Gaussian resampling maps

(Su)k=α−1∑j∈Ze−πα−2s2(k/t−j/s)2uj,(Tu)k=∑j∈Ze−πα2t2(k/t−j/s)2uj,(\mathcal Su)_k=\alpha^{-1}\sum_{j\in\mathbb Z}e^{-\pi\alpha^{-2}s^2(k/t-j/s)^2}u_j,\qquad(\mathcal Tu)_k=\sum_{j\in\mathbb Z}e^{-\pi\alpha^2t^2(k/t-j/s)^2}u_j,(Su)k​=α−1j∈Z∑​e−πα−2s2(k/t−j/s)2uj​,(Tu)k​=j∈Z∑​e−πα2t2(k/t−j/s)2uj​,

and let (Psu)j=utj(\mathcal P_su)_j=u_{tj}(Ps​u)j​=utj​ and (Ptu)k=u−sk(\mathcal P_tu)_k=u_{-sk}(Pt​u)k​=u−sk​, where indices are read modulo sss and modulo ttt respectively. Then

T Ps Fs=Pt Ft S.\mathcal T\,\mathcal P_s\,\mathcal F_s=\mathcal P_t\,\mathcal F_t\,\mathcal S .TPs​Fs​=Pt​Ft​S.

This identity expresses a DFT of length sss in terms of a DFT of the larger length ttt. It is how Harvey and van der Hoeven replace transforms of prime length by transforms whose lengths are powers of two.

Preamble
import Mathlib
import Definitions.Def_IntMul_HvdH_Resampling
Formal statement
namespace IntMul.HvdH

theorem theorem_4_2 (s t : ℕ) [NeZero s] [NeZero t] (hst : s < t) (hcop : Nat.Coprime s t)
    (α : ℝ) (hα : 0 < α) :
    (resT s t α).comp ((permS s t).comp (dft s)) =
      (permT s t).comp ((dft t).comp (resS s t α)) := by sorry

end IntMul.HvdH
Source
D. Harvey, J. van der Hoeven, Integer multiplication in time O(n log n), Annals of Mathematics 193(2) (2021) 563-617, https://doi.org/10.4007/annals.2021.193.2.4 (preprint https://hal.science/hal-02070778v2), §4.1, Theorem 4.2, p. 24 (setting of §4.1: s < t positive, gcd(s,t)=1, alpha in (0,inf))
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

Read-back of IntMul.HvdH.theorem_4_2.

Data and hypotheses. Let s,ts, ts,t be natural numbers with s≠0s \neq 0s=0 and t≠0t \neq 0t=0, with s<ts < ts<t (strict), and with gcd⁡(s,t)=1\gcd(s,t) = 1gcd(s,t)=1. Let α\alphaα be a real number with α>0\alpha > 0α>0. No other assumptions are made. Vectors in Cn\mathbb{C}^nCn are functions Z/nZ→C\mathbb{Z}/n\mathbb{Z} \to \mathbb{C}Z/nZ→C; for a residue a∈Z/nZa \in \mathbb{Z}/n\mathbb{Z}a∈Z/nZ, aˉ∈{0,…,n−1}\bar a \in \{0,\dots,n-1\}aˉ∈{0,…,n−1} denotes its least non-negative representative, and indices are always read mod nnn.

Maps involved (all are C\mathbb{C}C-linear, automatically continuous, and given by explicit matrices):

  • DFT Fn:Cn→Cn\mathcal{F}_n : \mathbb{C}^n \to \mathbb{C}^nFn​:Cn→Cn (used for n=sn = sn=s and n=tn = tn=t):
(Fnu)j=1n∑k=0n−1exp⁡ ⁣(−2πi jˉ kn) uk.(\mathcal{F}_n u)_j = \frac{1}{n}\sum_{k=0}^{n-1} \exp\!\Big(\frac{-2\pi i\, \bar j\, k}{n}\Big)\, u_k .(Fn​u)j​=n1​k=0∑n−1​exp(n−2πijˉ​k​)uk​.

Note the normalization factor 1/n1/n1/n (not 1/n1/\sqrt n1/n​) and the minus sign in the exponent.

  • Permutation Ps:Cs→Cs\mathcal{P}_s : \mathbb{C}^s \to \mathbb{C}^sPs​:Cs→Cs: (Psu)j=utj mod s(\mathcal{P}_s u)_j = u_{t j \bmod s}(Ps​u)j​=utjmods​ (the product t⋅jt\cdot jt⋅j computed in Z/sZ\mathbb{Z}/s\mathbb{Z}Z/sZ).

  • Permutation Pt:Ct→Ct\mathcal{P}_t : \mathbb{C}^t \to \mathbb{C}^tPt​:Ct→Ct: (Ptu)k=u−sk mod t(\mathcal{P}_t u)_k = u_{-s k \bmod t}(Pt​u)k​=u−skmodt​.

  • Resampling map S:Cs→Ct\mathcal{S} : \mathbb{C}^s \to \mathbb{C}^tS:Cs→Ct: for k∈Z/tZk \in \mathbb{Z}/t\mathbb{Z}k∈Z/tZ,

(Su)k=∑r=0s−1[∑m∈Zα−1exp⁡ ⁣(−π α−2s2(kˉt−r+mss)2)] ur.(\mathcal{S}u)_k = \sum_{r=0}^{s-1}\Big[\sum_{m\in\mathbb{Z}} \alpha^{-1}\exp\!\Big(-\pi\,\alpha^{-2} s^2\Big(\frac{\bar k}{t} - \frac{r + m s}{s}\Big)^{2}\Big)\Big]\, u_r .(Su)k​=r=0∑s−1​[m∈Z∑​α−1exp(−πα−2s2(tkˉ​−sr+ms​)2)]ur​.
  • Resampling map T:Cs→Ct\mathcal{T} : \mathbb{C}^s \to \mathbb{C}^tT:Cs→Ct: for k∈Z/tZk \in \mathbb{Z}/t\mathbb{Z}k∈Z/tZ,
(Tu)k=∑r=0s−1[∑m∈Zexp⁡ ⁣(−π α2t2(kˉt−r+mss)2)] ur.(\mathcal{T}u)_k = \sum_{r=0}^{s-1}\Big[\sum_{m\in\mathbb{Z}} \exp\!\Big(-\pi\,\alpha^{2} t^2\Big(\frac{\bar k}{t} - \frac{r + m s}{s}\Big)^{2}\Big)\Big]\, u_r .(Tu)k​=r=0∑s−1​[m∈Z∑​exp(−πα2t2(tkˉ​−sr+ms​)2)]ur​.

In both resampling maps the inner sum over m∈Zm \in \mathbb{Z}m∈Z is an unconditional (tsum) sum, which by convention would be 000 if the series were not summable; here, since α>0\alpha > 0α>0 and s,t≥1s, t \ge 1s,t≥1, the summands are Gaussian in mmm with strictly positive decay rate, so the series converge and the bracketed matrix entries are genuine positive reals. Equivalently, (Su)k=α−1∑j∈Ze−πα−2s2(kˉ/t−j/s)2 uj mod s(\mathcal{S}u)_k = \alpha^{-1}\sum_{j\in\mathbb{Z}} e^{-\pi\alpha^{-2}s^2(\bar k/t - j/s)^2}\,u_{j \bmod s}(Su)k​=α−1∑j∈Z​e−πα−2s2(kˉ/t−j/s)2ujmods​ and (Tu)k=∑j∈Ze−πα2t2(kˉ/t−j/s)2 uj mod s(\mathcal{T}u)_k = \sum_{j\in\mathbb{Z}} e^{-\pi\alpha^{2}t^2(\bar k/t - j/s)^2}\,u_{j \bmod s}(Tu)k​=∑j∈Z​e−πα2t2(kˉ/t−j/s)2ujmods​.

Conclusion. As maps Cs→Ct\mathbb{C}^s \to \mathbb{C}^tCs→Ct (i.e. for every u∈Csu \in \mathbb{C}^su∈Cs), the following exact identity holds:

T∘Ps∘Fs  =  Pt∘Ft∘S.\mathcal{T}\circ\mathcal{P}_s\circ\mathcal{F}_s \;=\; \mathcal{P}_t\circ\mathcal{F}_t\circ\mathcal{S}.T∘Ps​∘Fs​=Pt​∘Ft​∘S.

The order of application is: on the left, first the sss-point DFT, then the permutation Ps\mathcal{P}_sPs​, then T\mathcal{T}T; on the right, first S\mathcal{S}S, then the ttt-point DFT, then the permutation Pt\mathcal{P}_tPt​. Written out entrywise, for every u∈Csu \in \mathbb{C}^su∈Cs and every k∈Z/tZk \in \mathbb{Z}/t\mathbb{Z}k∈Z/tZ:

∑r=0s−1Tk,r⋅1s∑q=0s−1e−2πi (tr mod s)‾ q/s uq  =  1t∑p=0t−1e−2πi (−sk mod t)‾ p/t (Su)p,\sum_{r=0}^{s-1} \mathcal{T}_{k,r}\cdot\frac{1}{s}\sum_{q=0}^{s-1} e^{-2\pi i\,\overline{(t r \bmod s)}\, q/s}\,u_q \;=\; \frac{1}{t}\sum_{p=0}^{t-1} e^{-2\pi i\,\overline{(-s k \bmod t)}\,p/t}\,(\mathcal{S}u)_p ,r=0∑s−1​Tk,r​⋅s1​q=0∑s−1​e−2πi(trmods)​q/suq​=t1​p=0∑t−1​e−2πi(−skmodt)​p/t(Su)p​,

where Tk,r\mathcal{T}_{k,r}Tk,r​ is the bracketed entry of T\mathcal{T}T above. This is an equality, not an approximation or bound.

Edge cases and remarks. The hypotheses are satisfiable (e.g. s=1s = 1s=1, t=2t = 2t=2, any α>0\alpha > 0α>0), so the statement is not vacuous. The case s=1s = 1s=1 is included (then F1\mathcal{F}_1F1​ and P1\mathcal{P}_1P1​ are the identity on C1\mathbb{C}^1C1 and t≥2t \ge 2t≥2 is arbitrary); since s<ts < ts<t, always t≥2t \ge 2t≥2. The coprimality hypothesis ensures Ps\mathcal{P}_sPs​ and Pt\mathcal{P}_tPt​ are genuine permutations, though the maps are defined regardless. The source file also defines further objects (nearest-integer rounding, βℓ\beta_\ellβℓ​, the row-deletion map, the diagonal map, N\mathcal{N}N, E\mathcal{E}E, θ\thetaθ), none of which appear in this theorem.

Human review
  • Endorsed by wurtle · Oct 8, 2026

    Confirmed by the moderator at approval.

  • Endorsed by avi · Oct 8, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me