File: Mathlib/NumberTheory/ZetaValues.lean

full_name: _aux_Mathlib_NumberTheory_ZetaValues___macroRules_term𝕌_1
code: local notation "𝕌" => UnitAddCircle
goal: Lean.Macro

full_name: _aux_Mathlib_NumberTheory_ZetaValues___unexpand_UnitAddCircle_1
code: local notation "𝕌" => UnitAddCircle
goal: Lean.PrettyPrinter.Unexpander

full_name: bernoulliFun
code: /-- The function `x ↦ Bₖ(x) : ℝ → ℝ`. -/
def bernoulliFun (k : ℕ) (x : ℝ) : ℝ 
goal: ℝ

full_name: bernoulliFun_eval_zero
code: theorem bernoulliFun_eval_zero (k : ℕ) : bernoulliFun k 0 = bernoulli k 
goal: bernoulliFun k 0 = ↑(bernoulli k)

full_name: bernoulliFun_endpoints_eq_of_ne_one
code: theorem bernoulliFun_endpoints_eq_of_ne_one {k : ℕ} (hk : k ≠ 1) :
    bernoulliFun k 1 = bernoulliFun k 0 
goal: bernoulliFun k 1 = bernoulliFun k 0

full_name: bernoulliFun_eval_one
code: theorem bernoulliFun_eval_one (k : ℕ) : bernoulliFun k 1 = bernoulliFun k 0 + ite (k = 1) 1 0 
goal: bernoulliFun k 1 = bernoulliFun k 0 + if k = 1 then 1 else 0

full_name: hasDerivAt_bernoulliFun
code: theorem hasDerivAt_bernoulliFun (k : ℕ) (x : ℝ) :
    HasDerivAt (bernoulliFun k) (k * bernoulliFun (k - 1) x) x 
goal: HasDerivAt (bernoulliFun k) (↑k * bernoulliFun (k - 1) x) x

full_name: antideriv_bernoulliFun
code: theorem antideriv_bernoulliFun (k : ℕ) (x : ℝ) :
    HasDerivAt (fun x => bernoulliFun (k + 1) x / (k + 1)) (bernoulliFun k x) x 
goal: HasDerivAt (fun x => bernoulliFun (k + 1) x / (↑k + 1)) (bernoulliFun k x) x

full_name: integral_bernoulliFun_eq_zero
code: theorem integral_bernoulliFun_eq_zero {k : ℕ} (hk : k ≠ 0) :
    ∫ x : ℝ in (0)..1, bernoulliFun k x = 0 
goal: ∫ (x : ℝ) in 0 ..1, bernoulliFun k x = 0

full_name: bernoulliFourierCoeff
code: /-- The `n`-th Fourier coefficient of the `k`-th Bernoulli function on the interval `[0, 1]`. -/
def bernoulliFourierCoeff (k : ℕ) (n : ℤ) : ℂ 
goal: ℂ

full_name: bernoulliFourierCoeff_recurrence
code: /-- Recurrence relation (in `k`) for the `n`-th Fourier coefficient of `Bₖ`. -/
theorem bernoulliFourierCoeff_recurrence (k : ℕ) {n : ℤ} (hn : n ≠ 0) :
    bernoulliFourierCoeff k n =
      1 / (-2 * π * I * n) * (ite (k = 1) 1 0 - k * bernoulliFourierCoeff (k - 1) n) 
goal: bernoulliFourierCoeff k n =
  1 / (-2 * ↑π * Complex.I * ↑n) * ((if k = 1 then 1 else 0) - ↑k * bernoulliFourierCoeff (k - 1) n)

full_name: bernoulli_zero_fourier_coeff
code: /-- The Fourier coefficients of `B₀(x) = 1`. -/
theorem bernoulli_zero_fourier_coeff {n : ℤ} (hn : n ≠ 0) : bernoulliFourierCoeff 0 n = 0 
goal: bernoulliFourierCoeff 0 n = 0

full_name: bernoulliFourierCoeff_zero
code: /-- The `0`-th Fourier coefficient of `Bₖ(x)`. -/
theorem bernoulliFourierCoeff_zero {k : ℕ} (hk : k ≠ 0) : bernoulliFourierCoeff k 0 = 0 
goal: bernoulliFourierCoeff k 0 = 0

full_name: bernoulliFourierCoeff_eq
code: theorem bernoulliFourierCoeff_eq {k : ℕ} (hk : k ≠ 0) (n : ℤ) :
    bernoulliFourierCoeff k n = -k ! / (2 * π * I * n) ^ k 
goal: bernoulliFourierCoeff k n = -↑k ! / (2 * ↑π * Complex.I * ↑n) ^ k

full_name: periodizedBernoulli
code: /-- The Bernoulli polynomial, extended from `[0, 1)` to the unit circle. -/
def periodizedBernoulli (k : ℕ) : 𝕌 → ℝ 
goal: 𝕌 → ℝ

full_name: periodizedBernoulli.continuous
code: theorem periodizedBernoulli.continuous {k : ℕ} (hk : k ≠ 1) : Continuous (periodizedBernoulli k) 
goal: Continuous (periodizedBernoulli k)

full_name: fourierCoeff_bernoulli_eq
code: theorem fourierCoeff_bernoulli_eq {k : ℕ} (hk : k ≠ 0) (n : ℤ) :
    fourierCoeff ((↑) ∘ periodizedBernoulli k : 𝕌 → ℂ) n = -k ! / (2 * π * I * n) ^ k 
goal: fourierCoeff (Complex.ofReal' ∘ periodizedBernoulli k) n = -↑k ! / (2 * ↑π * Complex.I * ↑n) ^ k

full_name: summable_bernoulli_fourier
code: theorem summable_bernoulli_fourier {k : ℕ} (hk : 2 ≤ k) :
    Summable (fun n => -k ! / (2 * π * I * n) ^ k : ℤ → ℂ) 
goal: Summable fun n => -↑k ! / (2 * ↑π * Complex.I * ↑n) ^ k

full_name: hasSum_one_div_pow_mul_fourier_mul_bernoulliFun
code: theorem hasSum_one_div_pow_mul_fourier_mul_bernoulliFun {k : ℕ} (hk : 2 ≤ k) {x : ℝ}
    (hx : x ∈ Icc (0 : ℝ) 1) :
    HasSum (fun n : ℤ => 1 / (n : ℂ) ^ k * fourier n (x : 𝕌))
      (-(2 * π * I) ^ k / k ! * bernoulliFun k x) 
goal: HasSum (fun n => 1 / ↑n ^ k * (fourier n) ↑x) (-(2 * ↑π * Complex.I) ^ k / ↑k ! * ↑(bernoulliFun k x))

full_name: hasSum_one_div_nat_pow_mul_fourier
code: theorem hasSum_one_div_nat_pow_mul_fourier {k : ℕ} (hk : 2 ≤ k) {x : ℝ} (hx : x ∈ Icc (0 : ℝ) 1) :
    HasSum
      (fun n : ℕ =>
        (1 : ℂ) / (n : ℂ) ^ k * (fourier n (x : 𝕌) + (-1 : ℂ) ^ k * fourier (-n) (x : 𝕌)))
      (-(2 * π * I) ^ k / k ! * bernoulliFun k x) 
goal: HasSum (fun n => 1 / ↑n ^ k * ((fourier ↑n) ↑x + (-1) ^ k * (fourier (-↑n)) ↑x))
  (-(2 * ↑π * Complex.I) ^ k / ↑k ! * ↑(bernoulliFun k x))

full_name: hasSum_one_div_nat_pow_mul_cos
code: theorem hasSum_one_div_nat_pow_mul_cos {k : ℕ} (hk : k ≠ 0) {x : ℝ} (hx : x ∈ Icc (0 : ℝ) 1) :
    HasSum (fun n : ℕ => 1 / (n : ℝ) ^ (2 * k) * Real.cos (2 * π * n * x))
      ((-1 : ℝ) ^ (k + 1) * (2 * π) ^ (2 * k) / 2 / (2 * k)! *
        (Polynomial.map (algebraMap ℚ ℝ) (Polynomial.bernoulli (2 * k))).eval x) 
goal: HasSum (fun n => 1 / ↑n ^ (2 * k) * Real.cos (2 * π * ↑n * x))
  ((-1) ^ (k + 1) * (2 * π) ^ (2 * k) / 2 / ↑(2 * k)! *
    Polynomial.eval x (Polynomial.map (algebraMap ℚ ℝ) (Polynomial.bernoulli (2 * k))))

full_name: hasSum_one_div_nat_pow_mul_sin
code: theorem hasSum_one_div_nat_pow_mul_sin {k : ℕ} (hk : k ≠ 0) {x : ℝ} (hx : x ∈ Icc (0 : ℝ) 1) :
    HasSum (fun n : ℕ => 1 / (n : ℝ) ^ (2 * k + 1) * Real.sin (2 * π * n * x))
      ((-1 : ℝ) ^ (k + 1) * (2 * π) ^ (2 * k + 1) / 2 / (2 * k + 1)! *
        (Polynomial.map (algebraMap ℚ ℝ) (Polynomial.bernoulli (2 * k + 1))).eval x) 
goal: HasSum (fun n => 1 / ↑n ^ (2 * k + 1) * Real.sin (2 * π * ↑n * x))
  ((-1) ^ (k + 1) * (2 * π) ^ (2 * k + 1) / 2 / ↑(2 * k + 1)! *
    Polynomial.eval x (Polynomial.map (algebraMap ℚ ℝ) (Polynomial.bernoulli (2 * k + 1))))

full_name: hasSum_zeta_nat
code: theorem hasSum_zeta_nat {k : ℕ} (hk : k ≠ 0) :
    HasSum (fun n : ℕ => 1 / (n : ℝ) ^ (2 * k))
      ((-1 : ℝ) ^ (k + 1) * (2 : ℝ) ^ (2 * k - 1) * π ^ (2 * k) *
        bernoulli (2 * k) / (2 * k)!) 
goal: HasSum (fun n => 1 / ↑n ^ (2 * k)) ((-1) ^ (k + 1) * 2 ^ (2 * k - 1) * π ^ (2 * k) * ↑(bernoulli (2 * k)) / ↑(2 * k)!)

full_name: hasSum_zeta_two
code: theorem hasSum_zeta_two : HasSum (fun n : ℕ => (1 : ℝ) / (n : ℝ) ^ 2) (π ^ 2 / 6) 
goal: HasSum (fun n => 1 / ↑n ^ 2) (π ^ 2 / 6)

full_name: hasSum_zeta_four
code: theorem hasSum_zeta_four : HasSum (fun n : ℕ => (1 : ℝ) / (n : ℝ) ^ 4) (π ^ 4 / 90) 
goal: HasSum (fun n => 1 / ↑n ^ 4) (π ^ 4 / 90)

full_name: Polynomial.bernoulli_three_eval_one_quarter
code: theorem Polynomial.bernoulli_three_eval_one_quarter :
    (Polynomial.bernoulli 3).eval (1 / 4) = 3 / 64 
goal: Polynomial.eval (1 / 4) (Polynomial.bernoulli 3) = 3 / 64

full_name: hasSum_L_function_mod_four_eval_three
code: /-- Explicit formula for `L(χ, 3)`, where `χ` is the unique nontrivial Dirichlet character modulo 4.
-/
theorem hasSum_L_function_mod_four_eval_three :
    HasSum (fun n : ℕ => (1 : ℝ) / (n : ℝ) ^ 3 * Real.sin (π * n / 2)) (π ^ 3 / 32) 
goal: HasSum (fun n => 1 / ↑n ^ 3 * Real.sin (π * ↑n / 2)) (π ^ 3 / 32)