Skip to content

Commit b72c034

Browse files
committed
feat(NumberTheory/ModularForm/EisensteinSeries/E2): Prove E2 is MDifferentiable (leanprover-community#35819)
Proof that E2 is MDifferentiable. This proof comes from the Sphere packing project where it was produced by Gauss. Co-authored-by: Math.inc's Gauss
1 parent e1cd909 commit b72c034

File tree

3 files changed

+40
-1
lines changed

3 files changed

+40
-1
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5469,6 +5469,7 @@ public import Mathlib.NumberTheory.ModularForms.DedekindEta
54695469
public import Mathlib.NumberTheory.ModularForms.EisensteinSeries.Basic
54705470
public import Mathlib.NumberTheory.ModularForms.EisensteinSeries.Defs
54715471
public import Mathlib.NumberTheory.ModularForms.EisensteinSeries.E2.Defs
5472+
public import Mathlib.NumberTheory.ModularForms.EisensteinSeries.E2.MDifferentiable
54725473
public import Mathlib.NumberTheory.ModularForms.EisensteinSeries.E2.Summable
54735474
public import Mathlib.NumberTheory.ModularForms.EisensteinSeries.E2.Transform
54745475
public import Mathlib.NumberTheory.ModularForms.EisensteinSeries.IsBoundedAtImInfty

Mathlib/NumberTheory/ModularForms/DedekindEta.lean

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ lemma one_sub_eta_q_ne_zero (n : ℕ) {z : ℂ} (hz : z ∈ ℍₒ) : 1 - eta_q
6262
/-- The eta function, whose value at z is `q^ 1 / 24 * ∏' 1 - q ^ (n + 1)` for `q = e ^ 2 π i z`. -/
6363
noncomputable def eta (z : ℂ) := 𝕢 24 z * ∏' n, (1 - eta_q n z)
6464

65-
local notation "η" => eta
65+
/-- Notation for the Dedekind eta function. -/
66+
scoped[ModularForm] notation "η" => eta
6667

6768
theorem summable_eta_q (z : ℍ) : Summable fun n ↦ ‖-eta_q n z‖ := by
6869
simp [eta_q, eta_q_eq_pow, summable_nat_add_iff 1, norm_exp_two_pi_I_lt_one z]
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/-
2+
Copyright (c) 2026 Chris Birkbeck. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Chris Birkbeck, Gauss AI (Math Inc)
5+
-/
6+
7+
module
8+
9+
public import Mathlib.NumberTheory.ModularForms.DedekindEta
10+
11+
/-!
12+
# MDifferentiability of the weight 2 Eisenstein series
13+
14+
We show that the weight 2 Eisenstein series `E2` is MDifferentiable (i.e. holomorphic as a
15+
function `ℍ → ℂ`). The proof uses the relation between `E2` and the logarithmic derivative of
16+
the Dedekind eta function.
17+
-/
18+
19+
@[expose] public section
20+
21+
open UpperHalfPlane hiding I
22+
open Real Complex EisensteinSeries ModularForm Manifold
23+
24+
25+
--This proof was provided by Gauss to the sphere packing project.
26+
/-- The weight 2 Eisenstein series `E2` is MDifferentiable -/
27+
lemma E2_mdifferentiable : MDiff E2 := by
28+
rw [UpperHalfPlane.mdifferentiable_iff]
29+
have hη : DifferentiableOn ℂ η _ := fun z hz ↦
30+
(differentiableAt_eta_of_mem_upperHalfPlaneSet hz).differentiableWithinAt
31+
have hlog : DifferentiableOn ℂ (logDeriv η) _ :=
32+
(hη.deriv isOpen_upperHalfPlaneSet).div hη (fun _ hz ↦ eta_ne_zero hz)
33+
refine (hlog.const_mul (π * I / 12)⁻¹).congr (fun z hz ↦ ?_)
34+
simp [ofComplex_apply_of_im_pos hz, logDeriv_eta_eq_E2 ⟨z, hz⟩]
35+
field_simp
36+
37+
end

0 commit comments

Comments
 (0)