feat: bounds for modular forms of non-positive weights
We use the Maximum modulus principle to show that modular forms of non-positive weights are bounded by its value of some element of the upper half plane imaginary part at least 1/2.
PR summary 7d5154c184
Import changes for modified files
No significant changes to the import graph
Import changes for all files
| Files | Import difference |
|---|---|
Mathlib.NumberTheory.ModularForms.LevelOne |
1646 |
Declarations diff
+ SlashInvariantForm.exists_one_half_le_im_and_norm_le
+ SlashInvariantForm.wt_eq_zero_of_eq_const
+ coe
+ coe_apply_complex
+ denom_S
+ denom_one
+ det_coe
+ exists_one_half_le_im_smul
+ exists_one_half_le_im_smul_and_norm_denom_le
+ three_le_four_mul_im_sq_of_mem_fd
-++- im_smul_eq_div_normSq
You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>
## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>
The doc-module for script/declarations_diff.sh contains some details about this script.
Decrease in tech debt: (relative, absolute) = (1.00, 0.00)
| Current number | Change | Type |
|---|---|---|
| 1552 | -1 | erw |
Current commit 7d5154c184 Reference commit 66df24a8e2
You can run this locally as
./scripts/technical-debt-metrics.sh pr_summary
- The
relativevalue is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolutevalue is therelativevalue divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
Following some discussion with @CBirkbeck, I've pushed some changes to this branch which avoid making subgroups of SL2Z into subtypes, which gets rid of some unnecessary coercions and API lemmas.
⚠️ The sha of the head commit of this PR conflicts with #18385. Mergify cannot evaluate rules on this PR. ⚠️
I made #18385 to make the reviewing easier. That PR contains all the q.o.l improvements, this has the new results.
This PR/issue depends on:
- ~~leanprover-community/mathlib4#18385~~ By Dependent Issues (🤖). Happy coding!
This had a merge-conflict because of #18385. I merged it with the latest master and sorted out the conflicts, ready for review again.
This had a merge-conflict because of #18385. I merged it with the latest master and sorted out the conflicts, ready for review again.
thanks for doing this and again below!
No problem! By the way, I realised while fixing the conflicts that we have two distinct namespaces ModularGroup and UpperHalfPlane.ModularGroup. Is this deliberate or should they be unified? In any case denom_one as presently formulated shouldn't be in the ModularGroup namespace, since the 1 is getting elaborated as 1 : ↥GL(2, ℝ)⁺ rather than as 1 : SL(2, ℤ).
No problem! By the way, I realised while fixing the conflicts that we have two distinct namespaces
ModularGroupandUpperHalfPlane.ModularGroup. Is this deliberate or should they be unified? In any casedenom_oneas presently formulated shouldn't be in theModularGroupnamespace, since the1is getting elaborated as1 : ↥GL(2, ℝ)⁺rather than as1 : SL(2, ℤ).
No that was a mistake. I've removed it now and move denom_one.
(I can push fixes with all these changes to your PR, just let me know if that's OK with you.)
(I can push fixes with all these changes to your PR, just let me know if that's OK with you.)
Oh I was just doing this now. Go ahead and I'll double check there is nothing missing.
I have pushed fixes, I believe everything outside the new file LevelOne is now OK. I have not looked in detail at the new file, other than fixing knock-on effects of the changes I made elsewhere. Looking at it now.
I think the results like
modular_S_smuland those near it should maybe also move down
That doesn't work because it's used in exists_SL2_smul_eq_of_apply_zero_one_ne_zero (which is definitely not a ModularGroup lemma).
🚀 Pull request has been placed on the maintainer queue by loefflerd.
Thanks!
bors d+
:v: CBirkbeck can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.
bors r+