Documentation

Mathlib.NumberTheory.ZetaValues

Critical values of the Riemann zeta function #

In this file we prove formulae for the critical values of ζ(s), and more generally of Hurwitz zeta functions, in terms of Bernoulli polynomials.

Main results: #

Simple properties of the Bernoulli polynomial, as a function ℝ → ℝ.

noncomputable def bernoulliFun (k : ℕ) (x : ℝ) :

The function x ↦ Bₖ(x) : ℝ → ℝ.

Equations
Instances For
    @[simp]
    theorem bernoulliFun_zero (x : ℝ) :
    @[simp]
    theorem bernoulliFun_one (x : ℝ) :
    bernoulliFun 1 x = x - 1 / 2
    @[simp]
    theorem bernoulliFun_two (x : ℝ) :
    bernoulliFun 2 x = x ^ 2 - x + 6⁻¹
    theorem hasDerivAt_bernoulliFun (k : ℕ) (x : ℝ) :
    HasDerivAt (bernoulliFun k) (↑k * bernoulliFun (k - 1) x) x
    @[simp]
    theorem deriv_bernoulliFun (k : ℕ) :
    deriv (bernoulliFun k) = fun (x : ℝ) => ↑k * bernoulliFun (k - 1) x
    theorem antideriv_bernoulliFun (k : ℕ) (x : ℝ) :
    HasDerivAt (fun (x : ℝ) => bernoulliFun (k + 1) x / (↑k + 1)) (bernoulliFun k x) x
    theorem integral_bernoulliFun (k : ℕ) :
    ∫ (x : ℝ) in 0..1, bernoulliFun k x = if k = 0 then 1 else 0
    theorem integral_bernoulliFun_eq_zero {k : ℕ} (hk : k ≠ 0) :
    ∫ (x : ℝ) in 0..1, bernoulliFun k x = 0
    theorem bernoulliFun_eq_integral (k : ℕ) (x y : ℝ) :
    bernoulliFun (k + 1) y = bernoulliFun (k + 1) x + ∫ (t : ℝ) in x..y, ↑(k + 1) * bernoulliFun k t

    Fundamental theorem of calculus to express a Bernoulli polynomial via the previous one

    theorem bernoulliFun_eval_one_sub {k : ℕ} {x : ℝ} :
    bernoulliFun k (1 - x) = (-1) ^ k * bernoulliFun k x

    Reflection principle: B_s(1 - x) = (-1)^s B_s(x)

    theorem bernoulliFun_mul (k : ℕ) {m : ℕ} (m0 : m ≠ 0) (x : ℝ) :
    bernoulliFun k (↑m * x) = ↑m ^ k / ↑m * ∑ i ∈ Finset.range m, bernoulliFun k (x + ↑i / ↑m)

    The multiplication theorem. Proof follows https://math.stackexchange.com/a/1721099/38218.

    Values at 1/2 #

    theorem bernoulliFun_eval_half (k : ℕ) :
    bernoulliFun k 2⁻¹ = (2 / 2 ^ k - 1) * ↑(bernoulli k)

    Compute the Fourier coefficients of the Bernoulli functions via integration by parts.

    noncomputable def bernoulliFourierCoeff (k : ℕ) (n : ℤ) :

    The n-th Fourier coefficient of the k-th Bernoulli function on the interval [0, 1].

    Equations
    Instances For
      theorem bernoulliFourierCoeff_recurrence (k : ℕ) {n : ℤ} (hn : n ≠ 0) :
      bernoulliFourierCoeff k n = 1 / (-2 * ↑Real.pi * Complex.I * ↑n) * ((if k = 1 then 1 else 0) - ↑k * bernoulliFourierCoeff (k - 1) n)

      Recurrence relation (in k) for the n-th Fourier coefficient of Bₖ.

      The Fourier coefficients of B₀(x) = 1.

      theorem bernoulliFourierCoeff_zero {k : ℕ} (hk : k ≠ 0) :

      The 0-th Fourier coefficient of Bₖ(x).

      theorem bernoulliFourierCoeff_eq {k : ℕ} (hk : k ≠ 0) (n : ℤ) :

      In this section we use the above evaluations of the Fourier coefficients of Bernoulli polynomials, together with the theorem has_pointwise_sum_fourier_series_of_summable from Fourier theory, to obtain an explicit formula for ∑ (n:ℤ), 1 / n ^ k * fourier n x.

      noncomputable def periodizedBernoulli (k : ℕ) :

      The Bernoulli polynomial, extended from [0, 1) to the unit circle.

      Equations
      Instances For
        theorem summable_bernoulli_fourier {k : ℕ} (hk : 2 ≤ k) :
        Summable fun (n : ℤ) => -↑k.factorial / (2 * ↑Real.pi * Complex.I * ↑n) ^ k
        theorem hasSum_one_div_pow_mul_fourier_mul_bernoulliFun {k : ℕ} (hk : 2 ≤ k) {x : ℝ} (hx : x ∈ Set.Icc 0 1) :
        HasSum (fun (n : ℤ) => 1 / ↑n ^ k * (fourier n) ↑x) (-(2 * ↑Real.pi * Complex.I) ^ k / ↑k.factorial * ↑(bernoulliFun k x))
        theorem hasSum_one_div_nat_pow_mul_fourier {k : ℕ} (hk : 2 ≤ k) {x : ℝ} (hx : x ∈ Set.Icc 0 1) :
        HasSum (fun (n : ℕ) => 1 / ↑n ^ k * ((fourier ↑n) ↑x + (-1) ^ k * (fourier (-↑n)) ↑x)) (-(2 * ↑Real.pi * Complex.I) ^ k / ↑k.factorial * ↑(bernoulliFun k x))
        theorem hasSum_one_div_nat_pow_mul_cos {k : ℕ} (hk : k ≠ 0) {x : ℝ} (hx : x ∈ Set.Icc 0 1) :
        HasSum (fun (n : ℕ) => 1 / ↑n ^ (2 * k) * Real.cos (2 * Real.pi * ↑n * x)) ((-1) ^ (k + 1) * (2 * Real.pi) ^ (2 * k) / 2 / ↑(2 * k).factorial * Polynomial.eval x (Polynomial.map (algebraMap ℚ ℝ) (Polynomial.bernoulli (2 * k))))
        theorem hasSum_one_div_nat_pow_mul_sin {k : ℕ} (hk : k ≠ 0) {x : ℝ} (hx : x ∈ Set.Icc 0 1) :
        HasSum (fun (n : ℕ) => 1 / ↑n ^ (2 * k + 1) * Real.sin (2 * Real.pi * ↑n * x)) ((-1) ^ (k + 1) * (2 * Real.pi) ^ (2 * k + 1) / 2 / ↑(2 * k + 1).factorial * Polynomial.eval x (Polynomial.map (algebraMap ℚ ℝ) (Polynomial.bernoulli (2 * k + 1))))
        theorem hasSum_zeta_nat {k : ℕ} (hk : k ≠ 0) :
        HasSum (fun (n : ℕ) => 1 / ↑n ^ (2 * k)) ((-1) ^ (k + 1) * 2 ^ (2 * k - 1) * Real.pi ^ (2 * k) * ↑(bernoulli (2 * k)) / ↑(2 * k).factorial)
        theorem hasSum_zeta_two :
        HasSum (fun (n : ℕ) => 1 / ↑n ^ 2) (Real.pi ^ 2 / 6)
        theorem hasSum_zeta_four :
        HasSum (fun (n : ℕ) => 1 / ↑n ^ 4) (Real.pi ^ 4 / 90)
        theorem hasSum_L_function_mod_four_eval_three :
        HasSum (fun (n : ℕ) => 1 / ↑n ^ 3 * Real.sin (Real.pi * ↑n / 2)) (Real.pi ^ 3 / 32)

        Explicit formula for L(χ, 3), where χ is the unique nontrivial Dirichlet character modulo 4.