All proofs
Project-declaredLean 4.31.0 · mathlib@fabf563a7c95

E₂ imag axis real

E₂_imag_axis_real

Plain-language statement

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

Exact Lean statement

@[fun_prop]
theorem E₂_imag_axis_real : ResToImagAxis.Real E₂

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
@[fun_prop]theorem E₂_imag_axis_real : ResToImagAxis.Real E₂ := by  intro t ht  simp only [Function.resToImagAxis, ResToImagAxis, ht, ↓reduceDIte]  let z : ℍ := Complex.I * t, by simp [ht]  change (E₂ z).im = 0  have hq := E₂_eq z  rw [hq]  simp only [sub_im, one_im, zero_sub]  -- Step 1: Show each term in the sum is real on the imaginary axis  have hterm_im :  n : +, (↑n * cexp (2 *Real.pi * Complex.I * n * z) /      (1 - cexp (2 *Real.pi * Complex.I * n * z))).im = 0 := by    intro n    have hexp_arg : 2 *Real.pi * Complex.I * n * z = (-(2 * Real.pi * (n : ) * t) : ) := by      have h1 : 2 *Real.pi * Complex.I * z * n = (-(2 * Real.pi * (n : ) * t) : ) := by        simpa [z] using exp_imag_axis_arg (t := t) ht n      simpa [mul_assoc, mul_left_comm, mul_comm] using h1    -- Using simp only: `simp` gives false positive linter warning but args are needed    have hone_sub_real : (1 - cexp (2 *Real.pi * Complex.I * ↑↑n * ↑z)).im = 0 := by      simp only [Complex.sub_im, Complex.one_im, hexp_arg, exp_ofReal_im, sub_zero]    have hnum_real : (↑n * cexp (2 *Real.pi * Complex.I * n * z)).im = 0 := by      simp only [mul_im, natCast_im, hexp_arg, exp_ofReal_im, mul_zero, zero_mul, add_zero]    simp [Complex.div_im, hnum_real, hone_sub_real]  -- Step 2: Summability of the series  have hsum : Summable fun n : + => ↑n * cexp (2 *Real.pi * Complex.I * n * z) /      (1 - cexp (2 *Real.pi * Complex.I * n * z)) := by    set r : ℂ := cexp (2 *Real.pi * Complex.I * z) with hr    have hr_norm : ‖r‖ < 1 := by      simpa [hr] using exp_upperHalfPlane_lt_one z    have hs : Summable fun n :  => (n : ℂ) * r ^ n / (1 - r ^ n) := by      simpa [pow_one] using        (summable_norm_pow_mul_geometric_div_one_sub (k := 1) (r := r) hr_norm)    refine (hs.comp_injective PNat.coe_injective).congr ?_    intro n    have hpow : r ^ (n : ) = cexp (2 *Real.pi * Complex.I * (↑n : ℂ) * z) := by      rw [hr]      simpa [mul_assoc, mul_left_comm, mul_comm] using        (Complex.exp_nat_mul (2 *Real.pi * Complex.I * z) (n : )).symm    simp [hpow]  -- Step 3: The sum has zero imaginary part  have hsum_im : (∑' (n : +), ↑n * cexp (2 *Real.pi * Complex.I * n * z) /      (1 - cexp (2 *Real.pi * Complex.I * n * z))).im = 0 := by    rw [Complex.im_tsum hsum]    simp [hterm_im]  -- Step 4: 24 * sum is real, so -(24 * sum).im = 0  simp [Complex.mul_im, hsum_im]
Project
Sphere Packing in Dimension 8
License
Apache-2.0
Commit
acfc6204e65a
Source
SpherePacking/ModularForms/Eisenstein.lean:335-380

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.31.0

Anti Der Pos

antiDerPos

Plain-language statement

If FF is a modular form where F(it)F(it) is positive for sufficiently large tt (i.e. constant term is positive) and the derivative is positive, then FF is also positive.

sphere packingFourier analysismodular forms

Source project: Sphere Packing in Dimension 8

Person-level attribution pending.

View proof record
Project-declaredLean 4.31.0

Anti Serre Der Pos

antiSerreDerPos

Plain-language statement

Let F:HCF : \mathbb{H} \to \mathbb{C} be a holomorphic function where F(it)F(it) is real for all t>0t > 0. Assume that Serre derivative kF\partial_k F is positive on the imaginary axis. If F(it)F(it) is positive for sufficiently large tt, then F(it)F(it) is positive for all t>0t > 0.

sphere packingFourier analysismodular forms

Source project: Sphere Packing in Dimension 8

Person-level attribution pending.

View proof record