Skip to content

feat(MagicFunction): joint integrability and Fubini for the contour integrals Iⱼ - #464

Draft
cameronfreer wants to merge 41 commits into
thefundamentaltheor3m:mainfrom
cameronfreer:cameronfreer/fourier-fubini
Draft

cameronfreer wants to merge 41 commits into
thefundamentaltheor3m:mainfrom
cameronfreer:cameronfreer/fourier-fubini

Conversation

@cameronfreer

@cameronfreer cameronfreer commented Sep 1, 2026 •

Copy link
Copy Markdown
Contributor

Joint integrability of the two-variable integrands and the justified interchanges of integration needed to compute the Fourier transform of each Iⱼ.

Where this sits

Depends on: #463 (integrable majorants for the contour integrands), whose pointwise estimates and phase identities this PR consumes. The branch has been refreshed onto #463, including its #460 prerequisite. Review the Fubini module and its supporting additions relative to #463; the diff against main includes the parent stack. After #463 is merged, merge updated main into this branch; the diff will then reduce to this PR's own changes.

Merge order: #460 → #463 → #464, refreshing from main after parent merges.

Depended on by: nothing yet. This is the Fourier-side sibling of the eigenfunction work; the double-zeroes chain (#465 → #466) is independent of it.

Supersedes: #260, and the joint-integrability half of #261. Those branches had accumulated the same stacked history despite addressing different parts of the argument; this replaces them with one focused module.

What changed relative to #260

Contents

New SpherePacking/MagicFunction/a/Fourier/Fubini.lean:

The integrands. I₁_integrand–I₆_integrand : ℝ⁸ × ℝ → ℂ, defined from the canonical Φⱼ.

Joint integrability on the product space, by contour type. Two generic routes replace six bespoke proofs:

  • prod_integrable_of_gaussian_majorant — if ‖f (x, t)‖ ≤ exp(-π‖x‖²) · w t with w integrable on the segment, the majorant splits and f is integrable on the product space. This settles the compact top edge (I₂, I₄, w constant) and the vertical tail (I₆, w t = C exp(-2πt)).
  • prod_integrable_of_mul_unit_phase — transfer along a continuous unit-modulus phase, which is how Φ₁ and Φ₃ inherit from Φ₅.

The cusp class is the one that genuinely differs: the Gaussian there is scaled, exp(-π t ‖x‖²), and its ℝ⁸-integral is t⁻⁴, blowing up as t → 0⁺. The cusp bound exp(-2π/t) · t² beats it, leaving the bounded exp(-2π/t) · t⁻² (integral_norm_I₅_le, resting on the new exp_neg_div_mul_inv_sq_le).

Order of integration. Iⱼ_eq_integral expresses each Iⱼ as a set integral of its integrand, and Iⱼ_integral_swap justifies interchanging ∫_{ℝ⁸} and ∫_{segment}.

Supporting additions

  • IntegralParametrisations.lean: continuous_z₂', continuous_z₄', continuous_z₅', continuous_z₆'.
  • RealDecay.lean: exp_neg_div_mul_inv_sq_le (exp(-c/t) · t⁻² ≤ exp(-c) for t ∈ (0,1], c ≥ 2).
  • Majorants.lean: its cusp specialisation at c = 2π.

Latest cleanup

integral_norm_I₅_le now uses integral_mono_of_nonneg: the left-hand integrand is a norm, so the comparison needs only the Gaussian majorant's integrability, not a separate integrability proof for the norm.

Verification

Full lake build is clean, no new sorrys.

thefundamentaltheor3m and others added 26 commits August 25, 2026 15:05
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The sorry as stated (`∃ C, x ^ k * rexp (-r * x) ≤ C` with `x` bound outside
the existential) was vacuous — dischargeable by `⟨_, le_refl _⟩` with every
hypothesis unused. Restated with the explicit constant `(k / r) ^ k`, which
is uniform in `x`, and strengthened `0 ≤ r` to `0 < r` (no uniform bound
exists at `r = 0` for `k > 0`).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Bhavik Mehta <bhavikmehta8@gmail.com>
…rability

The six segments of the contour defining `a` fall into three classes, and
within each class the analytic estimate is the same; only the parametrisation
and a unit-modulus phase differ. Previously that argument was written out
separately in each of I1.lean-I6.lean.

Add `a/IntegralEstimates/Majorants.lean` collecting the shared ingredients:

* `norm_φ₀''_le`, the `PolyFourierCoeffBound` for φ₀ transported to φ₀'' on
  `Im w > 1/2` once and for all, plus its three specialisations along the
  vertical ray, the cusp ray and the top edge;
* `integrableOn_majorant_cusp` / `integrableOn_majorant_vertical`, the two
  majorant-integrability lemmas that were duplicated four times;
* `Φ₁_eq_Φ₅_mul_phase` / `Φ₃_eq_Φ₅_mul_phase` and the resulting uniform
  bounds `norm_Φ₁_le`, `norm_Φ₃_le`, `norm_Φ₅_le` on (0, 1];
* `integrableOn_of_norm_le_const`.

This fills the six `sorry`s in `Integrability.lean` (`Φⱼ_integrableOn`) and
turns I1.lean-I6.lean into thin specialisations, net -133 lines there.

Claude-Session: https://claude.ai/code/session_01FvNZchX49fvqUanJQhxpx4
Rebuild of the product-integrability work as a Fourier-only module, from
current main, with no dependency on any double-zero material and without
`Iⱼ_integrable`/`a_integrable` (those come from the Schwartz structure).

New `a/Fourier/Fubini.lean`:

* `I₁_integrand`-`I₆_integrand`: the integrands as maps `ℝ⁸ × ℝ → ℂ`;
* `Φ₁_prod_integrable`-`Φ₆_prod_integrable`, proved by contour class:
  - `prod_integrable_of_gaussian_majorant` handles the compact top edge
    (I₂, I₄) and the vertical tail (I₆) in one lemma, splitting the
    majorant `exp(-π‖x‖²) * w t` into its x- and t-factors;
  - the cusp class needs the scaled Gaussian, whose x-integral is t⁻⁴;
    `exp(-2π/t) t²` beats it, leaving the bounded `exp(-2π/t) t⁻²`
    (`integral_norm_I₅_le`), and I₁, I₃ follow from I₅ by
    `prod_integrable_of_mul_unit_phase`;
* `Iⱼ_eq_integral` and `Iⱼ_integral_swap`, the Fubini exchanges.

Supporting additions: `continuous_z₂'`/`z₄'`/`z₅'`/`z₆'` in
IntegralParametrisations, `exp_neg_div_mul_inv_sq_le` in RealDecay and its
cusp specialisation in Majorants.

Claude-Session: https://claude.ai/code/session_01FvNZchX49fvqUanJQhxpx4
@cameronfreer cameronfreer changed the title feat(MagicFunction): Fubini for the contour integrals Iⱼ feat(MagicFunction): joint integrability and Fubini for the contour integrals Iⱼ Sep 1, 2026
…e proofs

Applies the review suggestions on thefundamentaltheor3m#463:
- delete unused norm_φ₀''_neg_inv_add_I_le, im_I_mul, neg_one_div_I_mul,
  and the private norm_cexp_pi_I_mul wrapper
- drop the duplicate Bound_integrableOn aliases in I1/I3/I5/I6 in favour of
  the shared integrableOn_majorant_cusp/vertical
- Exists.imp/term-mode golf throughout Majorants.lean and Integrability.lean

Claude-Session: https://claude.ai/code/session_01FvNZchX49fvqUanJQhxpx4
@cameronfreer
cameronfreer marked this pull request as draft September 8, 2026 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants