Documentation

Mathlib.NumberTheory.ModularForms.JacobiTheta.Bounds

Asymptotic bounds for Jacobi theta functions #

The goal of this file is to establish some technical lemmas about the asymptotics of the sums

F_nat k a t = ∑' (n : ℕ), (n + a) ^ k * exp (-π * (n + a) ^ 2 * t)

and

F_int k a t = ∑' (n : ℤ), |n + a| ^ k * exp (-π * (n + a) ^ 2 * t).

Here k : ℕ and a : ℝ (resp a : UnitAddCircle) are fixed, and we are interested in asymptotics as t → ∞. These results are needed for the theory of Hurwitz zeta functions (and hence Dirichlet L-functions, etc).

Main results #

theorem HurwitzKernelBounds.isBigO_exp_neg_mul_of_le {c d : } (hcd : c d) :
(fun (t : ) => Real.exp (-d * t)) =O[Filter.atTop] fun (t : ) => Real.exp (-c * t)
def HurwitzKernelBounds.f_nat (k : ) (a t : ) (n : ) :

Summand in the sum to be bounded ( version).

Equations
Instances For
    def HurwitzKernelBounds.g_nat (k : ) (a t : ) (n : ) :

    An upper bound for the summand when 0 ≤ a.

    Equations
    Instances For
      theorem HurwitzKernelBounds.f_le_g_nat (k : ) {a t : } (ha : 0 a) (ht : 0 < t) (n : ) :
      f_nat k a t n g_nat k a t n

      The sum to be bounded ( version).

      Equations
      Instances For
        theorem HurwitzKernelBounds.summable_f_nat (k : ) (a : ) {t : } (ht : 0 < t) :
        Summable (f_nat k a t)

        Sum over with k = 0 #

        Here we use direct comparison with a geometric series.

        theorem HurwitzKernelBounds.F_nat_zero_le {a : } (ha : 0 a) {t : } (ht : 0 < t) :
        theorem HurwitzKernelBounds.isBigO_atTop_F_nat_zero_sub {a : } (ha : 0 a) :
        ∃ (p : ), 0 < p (fun (t : ) => F_nat 0 a t - if a = 0 then 1 else 0) =O[Filter.atTop] fun (t : ) => Real.exp (-p * t)

        Sum over with k = 1 #

        Here we use comparison with the series ∑ n * r ^ n, where r = exp (-π * t).

        theorem HurwitzKernelBounds.F_nat_one_le {a : } (ha : 0 a) {t : } (ht : 0 < t) :
        F_nat 1 a t Real.exp (-Real.pi * (a ^ 2 + 1) * t) / (1 - Real.exp (-Real.pi * t)) ^ 2 + a * Real.exp (-Real.pi * a ^ 2 * t) / (1 - Real.exp (-Real.pi * t))
        theorem HurwitzKernelBounds.isBigO_atTop_F_nat_one {a : } (ha : 0 a) :
        ∃ (p : ), 0 < p F_nat 1 a =O[Filter.atTop] fun (t : ) => Real.exp (-p * t)
        def HurwitzKernelBounds.f_int (k : ) (a t : ) (n : ) :

        Summand in the sum to be bounded ( version).

        Equations
        Instances For
          theorem HurwitzKernelBounds.f_int_ofNat (k : ) {a : } (ha : 0 a) (t : ) (n : ) :
          f_int k a t (Int.ofNat n) = f_nat k a t n
          theorem HurwitzKernelBounds.f_int_negSucc (k : ) {a : } (ha : a 1) (t : ) (n : ) :
          f_int k a t (Int.negSucc n) = f_nat k (1 - a) t n
          theorem HurwitzKernelBounds.summable_f_int (k : ) (a : ) {t : } (ht : 0 < t) :
          Summable (f_int k a t)

          The sum to be bounded ( version).

          Equations
          Instances For
            theorem HurwitzKernelBounds.F_int_eq_of_mem_Icc (k : ) {a : } (ha : a Set.Icc 0 1) {t : } (ht : 0 < t) :
            F_int k (↑a) t = F_nat k a t + F_nat k (1 - a) t
            theorem HurwitzKernelBounds.isBigO_atTop_F_int_zero_sub (a : UnitAddCircle) :
            ∃ (p : ), 0 < p (fun (t : ) => F_int 0 a t - if a = 0 then 1 else 0) =O[Filter.atTop] fun (t : ) => Real.exp (-p * t)