feat(NumberTheory/ModularForms): Parseval for q-expansions and mean square bound for any period (suggestions for #43558) - #1
Closed
CBirkbeck wants to merge 1 commit into
Conversation
…quare bound for any period Suggestions on top of leanprover-community#43558: Parseval's identity for q-expansions (with vanishing of the negative-index Fourier coefficients via Cauchy's theorem), the mean-square bound for any strict period with the strict-width statement as a corollary and an IsBigO form, the Fourier lemma moved from QExpansion.lean to Bounds.lean to keep the Fourier import out of QExpansion's downstream, no change to MFDeriv/Basic.lean, and golfed proofs (all proof comments kept). Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A6f2mYh682Cc9g7DbpQZ2k
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Suggestions on top of leanprover-community#43558 (mean square bound for q-expansions), packaged as a draft PR against the
DL_modform_parsevalbranch so that the diff shows only the proposed changes. Take whatever is useful and ignore the rest.Changes relative to leanprover-community#43558:
hasSum_norm_sq_qExpansion_coeff_mul_exp:∑' n, ‖a n‖² · exp(-4πny/h) = h⁻¹ ∫₀ʰ ‖f(x+iy)‖² dxas aHasSumoverℕ. The negative-index Fourier coefficients ofx ↦ f (x + iy)vanish (fourierCoeffOn_neg_eq_zero), proved by Cauchy's theorem forz ^ n * cuspFunction h f zon a circle in theq-disc, reusing the change of variables ofqExpansion_coeff_eq_intervalIntegral. The Bessel inequalitysum_range_norm_sq_qExpansion_coeff_mul_exp_leis then a one-line corollary (sum_le_hasSum).CuspFormClass.exists_sum_range_norm_sq_qExpansion_coeff_le_of_mem_strictPeriodsproves the mean-square bound for theq-expansion with respect to anyh > 0inΓ.strictPeriods(same proof); the originalstrictWidthInftystatement is a one-line specialisation, andCuspFormClass.sum_range_norm_sq_qExpansion_coeff_isBigOis theIsBigOform.qExpansion_coeff_eq_exp_mul_fourierCoeffOnmoves fromQExpansion.leantoBounds.lean(which now haspublic import Mathlib.Analysis.Fourier.AddCircle), soQExpansion.leanno longer imports the Fourier / L² library. That import added 139 transitive modules to the 19 files downstream ofQExpansion.lean;Bounds.leanhas a single downstream file (LFunction.lean).MFDeriv/Basic.lean. The@[fun_prop]attributes onMDifferentiable.continuous/MDifferentiableOn.continuousOnare not needed for this PR (hfhol.continuous.comp (by fun_prop)does the job, andModularFormClass.continuousis alreadyfun_prop), which avoids rebuilding the 113 files downstream of that file. They may well be worth adding in a separate PR.sum_range_norm_sq_qExpansion_coeff_le(12 → 5 lines viagcongr),exists_sum_range_norm_sq_qExpansion_coeff_le(the rpow juggling inhCbecomes onesimpa [field, ← Real.rpow_mul_natCast …], theM = 0case ispositivity),qExpansion_coeff_eq_exp_mul_fourierCoeffOn(push_cast [...]absorbs the rewrite chain), and the privateMemLplemma inlined at its only use.Checked locally: the two files and all 20 modules downstream of them build, no warnings,
lint-styleclean.Possible follow-ups not included here: a
norm_petersson_selflemma (‖petersson k f f τ‖ = ‖f τ‖ ^ 2 * τ.im ^ k) would simplifyhCandCuspFormClass.exists_bound; aContinuousOn.memLp_isCompactsibling ofMonotoneOn.memLp_isCompact.AI use: prepared by Claude (Claude Code) at the direction of Chris Birkbeck, following an automated review of leanprover-community#43558. All Lean was compile-checked; the mathematical claims (Parseval, sharpness of the exponent) were cross-checked against Iwaniec, Topics in classical automorphic forms, Theorem 5.1, and Rudnick's 2019 lecture notes on Petersson's formula, Theorem 1.2.
🤖 Generated with Claude Code
https://claude.ai/code/session_01A6f2mYh682Cc9g7DbpQZ2k