[Merged by Bors] - feat(NumberTheory/ModularForms): define modular forms for any subgroup of GL(2, R)#26651
[Merged by Bors] - feat(NumberTheory/ModularForms): define modular forms for any subgroup of GL(2, R)#26651loefflerd wants to merge 147 commits intoleanprover-community:masterfrom
Conversation
PR summary bf35bd39a0
|
| File | Base Count | Head Count | Change |
|---|---|---|---|
| Mathlib.NumberTheory.ModularForms.EisensteinSeries.Basic | 2471 | 2505 | +34 (+1.38%) |
| Mathlib.NumberTheory.ModularForms.QExpansion | 2475 | 2509 | +34 (+1.37%) |
| Mathlib.NumberTheory.ModularForms.LevelOne | 2488 | 2522 | +34 (+1.37%) |
| Mathlib.NumberTheory.ModularForms.Basic | 2452 | 2484 | +32 (+1.31%) |
| Mathlib.NumberTheory.ModularForms.SlashInvariantForms | 1853 | 1851 | -2 (-0.11%) |
| Mathlib.NumberTheory.ModularForms.Petersson | 1928 | 1926 | -2 (-0.10%) |
Import changes for all files
| Files | Import difference |
|---|---|
Mathlib.NumberTheory.ModularForms.Petersson Mathlib.NumberTheory.ModularForms.SlashInvariantForms |
-2 |
Mathlib.NumberTheory.ModularForms.Basic |
32 |
3 filesMathlib.NumberTheory.ModularForms.EisensteinSeries.Basic Mathlib.NumberTheory.ModularForms.LevelOne Mathlib.NumberTheory.ModularForms.QExpansion |
34 |
Declarations diff
+ CuspFormClass.zero_at_infty
+ CuspFormClass.zero_at_infty_slash
+ HasDetOne
+ HasDetPlusMinusOne
+ HasDetPlusMinusOne.abs_det
+ IsGLPos.instSMul
+ ModularFormClass.bdd_at_infty
+ ModularFormClass.bdd_at_infty_slash
+ coe_smulℝ
+ constℝ_apply
+ instModuleComplex
+ instModuleReal
+ instSMulℂ
+ instance (Γ : Subgroup (SL n R)) : HasDetOne (Γ.map toGL)
+ instance : Module ℝ (CuspForm Γ k)
+ instance : Module ℝ (ModularForm Γ k)
+ instance [HasDetOne Γ] : HasDetPlusMinusOne Γ := ⟨fun {g} hg ↦ by simp [HasDetOne.det_eq hg]⟩
+ instance [Γ.HasDetOne] : Module ℂ (CuspForm Γ k)
+ instance [Γ.HasDetOne] : Module ℂ (ModularForm Γ k)
+ instance [Γ.HasDetPlusMinusOne] : IntCast (ModularForm Γ 0)
+ instance [Γ.HasDetPlusMinusOne] : IntCast (SlashInvariantForm Γ 0)
+ instance [Γ.HasDetPlusMinusOne] : NatCast (ModularForm Γ 0)
+ instance [Γ.HasDetPlusMinusOne] : NatCast (SlashInvariantForm Γ 0)
+ instance [Γ.HasDetPlusMinusOne] : One (ModularForm Γ 0)
+ instance [Γ.HasDetPlusMinusOne] : One (SlashInvariantForm Γ 0)
+ instance {S : Type*} [CommRing S] [Algebra S R] (Γ : Subgroup (SL n S)) :
+ instance {Γ : Subgroup (GL (Fin 2) ℝ)} [h : Γ.IsArithmetic] : HasDetPlusMinusOne Γ := by
+ slash_action_eqn_SL''
+ smul_applyℝ
++ IsGLPos.coe_smul
++ IsGLPos.smul_apply
++ constℝ
++ instSMulℝ
++ instance (Γ : Subgroup (GL (Fin 2) ℝ)) [Γ.HasDetPlusMinusOne] :
++-- mul
- instance (Γ : Subgroup SL(2, ℤ)) : GradedMonoid.GMul (ModularForm Γ)
- instance (Γ : Subgroup SL(2, ℤ)) : GradedMonoid.GOne (ModularForm Γ)
- instance (Γ : Subgroup SL(2, ℤ)) : IntCast (ModularForm Γ 0)
- instance (Γ : Subgroup SL(2, ℤ)) : IntCast (SlashInvariantForm Γ 0)
- instance (Γ : Subgroup SL(2, ℤ)) : NatCast (ModularForm Γ 0)
- instance (Γ : Subgroup SL(2, ℤ)) : NatCast (SlashInvariantForm Γ 0)
- instance : Module ℂ (CuspForm Γ k)
- instance : Module ℂ (ModularForm Γ k)
- instance : Module ℂ (SlashInvariantForm Γ k)
- instance : One (ModularForm Γ 0)
- instance : One (SlashInvariantForm Γ 0)
-+- instSMul
-+-+ coe_intCast
-+-+ coe_natCast
--++ const
--++ one_coe_eq_one
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.
No changes to technical debt.
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).
Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
|
This pull request has conflicts, please merge |
|
@CBirkbeck can you please have a look? |
| BoundedAtFilter I∞ (f ∘ ofComplex) := by | ||
| simpa only [SlashAction.slash_one, ModularForm.toSlashInvariantForm_coe] | ||
| using (ModularFormClass.bdd_at_infty f 1).comp_tendsto tendsto_comap_im_ofComplex | ||
| theorem bounded_at_infty_comp_ofComplex [ModularFormClass F Γ k] [Γ.FiniteIndex] : |
There was a problem hiding this comment.
why does this need the FiniteIndex condition now? We didn't have it before and the level isnt more general here right?
There was a problem hiding this comment.
Ah, that's a subtle point, well spotted.
If you take a subgroup of Γ of SL2Z with infinite index, then the new definition of "cusp forms of level Γ" isn't the same as the old one. The new definition quantifies over the cusps of Γ, defined intrinsically as fixedpoints inside P^1(R) of parabolic elements of Γ; while the old definition just quantifies over P^1(Q) inside P^1(R), whatever Γ is.
Now, it's a theorem that if Γ has finite index, then its cusps are the same as those of SL2Z, namely P1(Q); hence the new definition is equivalent to the old one if Γ is finite-index. In particular, for a finite-index subgroup ∞ is always a cusp, which is what we need for this argument. On the other hand, if Γ has infinite index, then ∞ might not be a cusp; in the extreme case Γ = {1}, there aren't any cusps at all (because there are no parabolic elements).
So that's why we have picked up a FiniteIndex assumption here that wasn't there before.
Co-authored-by: Chris Birkbeck <c.birkbeck@uea.ac.uk>
|
Thanks! bors merge |
…p of GL(2, R) (#26651) This PR generalizes (some of) the modular forms files to allow the level to be any subgroup of GL(2, R), not necessarily the image of a subgroup of SL(2, Z). Intended applications include defining Hecke operators. Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
|
Pull request successfully merged into master. Build succeeded: |
…p of GL(2, R) (leanprover-community#26651) This PR generalizes (some of) the modular forms files to allow the level to be any subgroup of GL(2, R), not necessarily the image of a subgroup of SL(2, Z). Intended applications include defining Hecke operators. Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
…p of GL(2, R) (leanprover-community#26651) This PR generalizes (some of) the modular forms files to allow the level to be any subgroup of GL(2, R), not necessarily the image of a subgroup of SL(2, Z). Intended applications include defining Hecke operators. Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
…p of GL(2, R) (leanprover-community#26651) This PR generalizes (some of) the modular forms files to allow the level to be any subgroup of GL(2, R), not necessarily the image of a subgroup of SL(2, Z). Intended applications include defining Hecke operators. Co-authored-by: Eric Wieser <wieser.eric@gmail.com>
* The definition of `ModularForm` was generalized: leanprover-community/mathlib4#26651 * `Summable` has a `SummationFilter` parameter now: leanprover-community/mathlib4#29914 * `f` parameter of `tprod_pnat_eq_tprod_succ` is now implicit: leanprover-community/mathlib4#27841 * various lemmas were deprecated * A lemma named `Filter.map_add_atTop_eq` was added to mathlib: leanprover-community/mathlib4#29532 * other changes too... --------- Co-authored-by: Pietro Monticone <38562595+pitmonticone@users.noreply.github.com>
This PR generalizes (some of) the modular forms files to allow the level to be any subgroup of GL(2, R), not necessarily
the image of a subgroup of SL(2, Z). Intended applications include defining Hecke operators.