Documentation

SpherePacking.ModularForms.Eisenstein

Helper lemmas for dimension-one arguments #

theorem exists_smul_eq_of_rank_one {M : Type u_1} [AddCommGroup M] [Module M] (hrank : Module.rank M = 1) {e : M} (he : e 0) (f : M) :
∃ (c : ), f = c e

In a rank-one module, every element is a scalar multiple of any nonzero element.

theorem exists_smul_eq_of_rank_one' {M : Type u_1} [AddCommGroup M] [Module M] (hrank : Module.rank M = 1) {e : M} (he : e 0) (f : M) :
∃ (c : ), c e = f

Symmetric version: c • e = f instead of f = c • e.

Convert smul equality of modular forms to pointwise equality.

theorem E₄_periodic (z : UpperHalfPlane) :
E₄ (1 +ᵥ z) = E₄ z

E₄ is 1-periodic: E₄(z + 1) = E₄(z). This follows from E₄ being a modular form for Γ(1).

theorem E₆_periodic (z : UpperHalfPlane) :
E₆ (1 +ᵥ z) = E₆ z

E₆ is 1-periodic: E₆(z + 1) = E₆(z). This follows from E₆ being a modular form for Γ(1).

E₄ transforms under S as: E₄(-1/z) = z⁴ · E₄(z)

E₆ transforms under S as: E₆(-1/z) = z⁶ · E₆(z)

Equations
Instances For
    Equations
    Instances For
      Equations
      Instances For
        def φ₀'' (z : ) :
        Equations
        Instances For
          def φ₂'' (z : ) :
          Equations
          Instances For
            def φ₄'' (z : ) :
            Equations
            Instances For
              theorem φ₀''_def {z : } (hz : 0 < z.im) :
              φ₀'' z = φ₀ { coe := z, coe_im_pos := hz }
              theorem φ₀''_mem_upperHalfPlane {z : } (hz : z UpperHalfPlane.upperHalfPlaneSet) :
              φ₀'' z = φ₀ { coe := z, coe_im_pos := hz }
              theorem cuspfunc_lim_coef {k : } {F : Type u_1} [inst : FunLike F UpperHalfPlane ] (n : ) (c : ) (f : F) [inst_1 : ModularFormClass F (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ) (CongruenceSubgroup.Gamma n)) k] [inst_2 : NeZero n] (hf : ∀ (τ : UpperHalfPlane), HasSum (fun (m : ) => c m Function.Periodic.qParam n τ ^ m) (f τ)) (q : ) (hq : q < 1) (hq1 : q 0) :
              HasSum (fun (m : ) => c m q ^ m) (SlashInvariantFormClass.cuspFunction (↑n) (⇑f) q)
              theorem summable_zero_pow {G : Type u_2} [NormedField G] (f : G) :
              Summable fun (m : ) => f m * 0 ^ m
              theorem tsum_zero_pow (f : ) :
              ∑' (m : ), f m * 0 ^ m = f 0
              theorem modfom_q_exp_cuspfunc {k : } {F : Type u_1} [FunLike F UpperHalfPlane ] (n : ) (c : ) (f : F) [ModularFormClass F (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ) (CongruenceSubgroup.Gamma n)) k] [NeZero n] (hf : ∀ (τ : UpperHalfPlane), HasSum (fun (m : ) => c m Function.Periodic.qParam n τ ^ m) (f τ)) (q : ) :
              q < 1HasSum (fun (m : ) => c m q ^ m) (SlashInvariantFormClass.cuspFunction (↑n) (⇑f) q)
              theorem qParam_surj_onto_ball (n : ) (r : ) (hr : 0 < r) (hr2 : r < 1) [NeZero n] :
              theorem q_exp_unique {k : } (n : ) (c : ) (f : ModularForm (Subgroup.map (Matrix.SpecialLinearGroup.mapGL ) (CongruenceSubgroup.Gamma n)) k) [hn : NeZero n] (hf : ∀ (τ : UpperHalfPlane), HasSum (fun (m : ) => c m Function.Periodic.qParam n τ ^ m) (f τ)) :
              c = fun (m : ) => (PowerSeries.coeff m) (ModularFormClass.qExpansion n f)
              theorem deriv_mul_eq (f g : ) (hf : Differentiable f) (hg : Differentiable g) :
              deriv (f * g) = deriv f * g + f * deriv g
              theorem sigma_bound (k n : ) :
              def Ek_q (k : ) :
              Equations
              Instances For
                theorem qexpsummable (k : ) (hk : 3 k) (z : UpperHalfPlane) :
                Summable fun (m : ) => Ek_q k m Function.Periodic.qParam 1 z ^ m
                theorem Ek_q_exp_zero (k : ) (hk : 3 k) (hk2 : Even k) :
                theorem Ek_q_exp (k : ) (hk : 3 k) (hk2 : Even k) :
                (fun (m : ) => (PowerSeries.coeff m) (ModularFormClass.qExpansion 1 (E (↑k) hk))) = fun (m : ) => if m = 0 then 1 else 1 / riemannZeta k * ((-2 * Real.pi * Complex.I) ^ k / (k - 1).factorial) * ((ArithmeticFunction.sigma (k - 1)) m)
                theorem E4_q_exp :
                (fun (m : ) => (PowerSeries.coeff m) (ModularFormClass.qExpansion 1 E₄)) = fun (m : ) => if m = 0 then 1 else 240 * ((ArithmeticFunction.sigma 3) m)
                @[simp]
                theorem Complex.I_pow_six :
                I ^ 6 = -1
                @[simp]
                @[simp]
                theorem bernoulli'_six :
                bernoulli' 6 = 1 / 42
                theorem E6_q_exp :
                (fun (m : ) => (PowerSeries.coeff m) (ModularFormClass.qExpansion 1 E₆)) = fun (m : ) => if m = 0 then 1 else -504 * ((ArithmeticFunction.sigma 5) m)
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem Delta_cuspFuntion_eq :
                  Set.EqOn (SlashInvariantFormClass.cuspFunction 1 Delta) (fun (y : ) => y * ∏' (i : ), (1 - y ^ (i + 1)) ^ 24) (Metric.ball 0 (1 / 2))
                  theorem asdf :
                  TendstoLocallyUniformlyOn (fun (n : ) (y : ) => xFinset.range n, (1 - y ^ (x + 1))) (fun (x : ) => ∏' (i : ), (1 - x ^ (i + 1))) Filter.atTop (Metric.ball 0 (1 / 2))
                  theorem diffwithinat_prod_1 :
                  DifferentiableWithinAt (fun (y : ) => ∏' (i : ), (1 - y ^ (i + 1)) ^ 24) (Metric.ball 0 (1 / 2)) 0
                  theorem Ek_ne_zero (k : ) (hk : 3 k) (hk2 : Even k) :
                  E (↑k) hk 0
                  theorem PowerSeries.coeff_add (f g : PowerSeries ) (n : ) :
                  (coeff n) (f + g) = (coeff n) f + (coeff n) g

                  Imaginary Axis Properties #

                  Properties of Eisenstein series when restricted to the positive imaginary axis z = I*t.

                  theorem neg_two_pi_I_pow_even_real (k : ) (hk : Even k) :
                  ((-2 * Real.pi * Complex.I) ^ k).im = 0

                  (-2πi)^k is real for even k.

                  theorem exp_imag_axis_arg (t : ) (ht : 0 < t) (n : ℕ+) :
                  2 * Real.pi * Complex.I * { coe := Complex.I * t, coe_im_pos := } * n = ↑(-(2 * Real.pi * n * t))

                  On imaginary axis z = I*t, the q-expansion exponent 2πi·n·z reduces to -(2πnt). This is useful for reusing the same algebraic simplification across E₂, E₄, E₆.

                  theorem E_even_imag_axis_real (k : ) (hk : 3 k) (hk2 : Even k) :

                  E_k(it) is real for all t > 0 when k is even and k ≥ 4. This is the generalized theorem from which E₄_imag_axis_real and E₆_imag_axis_real follow.

                  E₄(it) is real for all t > 0.

                  E₆(it) is real for all t > 0.

                  E₂(it) is real for all t > 0.

                  Boundedness of E₂ #

                  For im(z) ≥ 1, ‖exp(2πiz)‖ ≤ exp(-2π).

                  This bound on the q-parameter is useful for estimating q-expansions when im(z) ≥ 1.

                  theorem norm_tsum_logDeriv_expo_le {q : } (hq : q < 1) :
                  ∑' (n : ℕ+), n * q ^ n / (1 - q ^ n) q / (1 - q) ^ 3

                  Bound on the q-series ∑ n·qⁿ/(1-qⁿ) that appears in E₂.

                  For ‖q‖ < 1, we have ‖∑ₙ₌₁ n·qⁿ/(1-qⁿ)‖ ≤ ‖q‖/(1-‖q‖)³.

                  The key estimates are:

                  • |1-qⁿ| ≥ 1-|q|ⁿ ≥ 1-|q| for n ≥ 1
                  • |n·qⁿ/(1-qⁿ)| ≤ n·|q|ⁿ/(1-|q|)
                  • ∑ n·rⁿ = r/(1-r)², so ∑ n·rⁿ/(1-r) = r/(1-r)³
                  theorem norm_tsum_logDeriv_expo_le_of_norm_le {q : } {r : } (hqr : q r) (hr : r < 1) :
                  ∑' (n : ℕ+), n * q ^ n / (1 - q ^ n) r / (1 - r) ^ 3

                  Monotone version of norm_tsum_logDeriv_expo_le: if ‖q‖ ≤ r < 1, then ‖∑ n·qⁿ/(1-qⁿ)‖ ≤ r/(1-r)³. Useful when we have a uniform bound on ‖q‖.

                  E₂ is bounded at infinity.

                  Uses E₂_eq: E₂(z) = 1 - 24·Σₙ₌₁ n·qⁿ/(1-qⁿ) where q = exp(2πiz). For im(z) ≥ 1, |q| ≤ exp(-2π), so by norm_tsum_logDeriv_expo_le, |E₂| ≤ 1 + 24·exp(-2π)/(1-exp(-2π))³.

                  E₄ is bounded at infinity (as a modular form).

                  The product E₂ · E₄ is bounded at infinity.