File: Mathlib/NumberTheory/Harmonic/ZetaAsymp.lean

full_name: _aux_Mathlib_NumberTheory_Harmonic_ZetaAsymp___unexpand_Real_eulerMascheroniConstant_1
code: @[inherit_doc] local notation "γ" => eulerMascheroniConstant
goal: Lean.PrettyPrinter.Unexpander

full_name: _aux_Mathlib_NumberTheory_Harmonic_ZetaAsymp___macroRules_termγ_1
code: @[inherit_doc] local notation "γ" => eulerMascheroniConstant
goal: Lean.Macro

full_name: ZetaAsymptotics.term
code: /-- Auxiliary function used in studying zeta-function asymptotics. -/
noncomputable def term (n : ℕ) (s : ℝ) : ℝ 
goal: ℝ

full_name: ZetaAsymptotics.term_sum
code: /-- Sum of finitely many `term`s. -/
noncomputable def term_sum (s : ℝ) (N : ℕ) : ℝ 
goal: ℝ

full_name: ZetaAsymptotics.term_tsum
code: /-- Topological sum of `term`s. -/
noncomputable def term_tsum (s : ℝ) : ℝ 
goal: ℝ

full_name: ZetaAsymptotics.term_nonneg
code: lemma term_nonneg (n : ℕ) (s : ℝ) : 0 ≤ term n s 
goal: 0 ≤ ZetaAsymptotics.term n s

full_name: ZetaAsymptotics.term_welldef
code: lemma term_welldef {n : ℕ} (hn : 0 < n) {s : ℝ} (hs : 0 < s) :
    IntervalIntegrable (fun x : ℝ ↦ (x - n) / x ^ (s + 1)) volume n (n + 1) 
goal: IntervalIntegrable (fun x => (x - ↑n) / x ^ (s + 1)) MeasureTheory.volume (↑n) (↑n + 1)

full_name: ZetaAsymptotics.term_one
code: lemma term_one {n : ℕ} (hn : 0 < n) :
    term n 1 = (log (n + 1) - log n) -  1 / (n + 1) 
goal: ZetaAsymptotics.term n 1 = Real.log (↑n + 1) - Real.log ↑n - 1 / (↑n + 1)

full_name: ZetaAsymptotics.term_sum_one
code: lemma term_sum_one (N : ℕ) : term_sum 1 N = log (N + 1) - harmonic (N + 1) + 1 
goal: ZetaAsymptotics.term_sum 1 N = Real.log (↑N + 1) - ↑(harmonic (N + 1)) + 1

full_name: ZetaAsymptotics.term_tsum_one
code: /-- The topological sum of `ZetaAsymptotics.term (n + 1) 1` over all `n : ℕ` is `1 - γ`. This is
proved by directly evaluating the sum of the first `N` terms and using the limit definition of `γ`.
-/
lemma term_tsum_one : HasSum (fun n ↦ term (n + 1) 1) (1 - γ) 
goal: HasSum (fun n => ZetaAsymptotics.term (n + 1) 1) (1 - γ)

full_name: ZetaAsymptotics.term_of_lt
code: lemma term_of_lt {n : ℕ} (hn : 0 < n) {s : ℝ} (hs : 1 < s) :
    term n s = 1 / (s - 1) * (1 / n ^ (s - 1) - 1 / (n + 1) ^ (s - 1))
    - n / s * (1 / n ^ s - 1 / (n + 1) ^ s) 
goal: ZetaAsymptotics.term n s =
  1 / (s - 1) * (1 / ↑n ^ (s - 1) - 1 / (↑n + 1) ^ (s - 1)) - ↑n / s * (1 / ↑n ^ s - 1 / (↑n + 1) ^ s)

full_name: ZetaAsymptotics.term_sum_of_lt
code: lemma term_sum_of_lt (N : ℕ) {s : ℝ} (hs : 1 < s) :
    term_sum s N = 1 / (s - 1) * (1 - 1 / (N + 1) ^ (s - 1))
    - 1 / s * ((∑ n ∈ Finset.range N, 1 / (n + 1 : ℝ) ^ s) - N / (N + 1) ^ s) 
goal: ZetaAsymptotics.term_sum s N =
  1 / (s - 1) * (1 - 1 / (↑N + 1) ^ (s - 1)) - 1 / s * (∑ n ∈ Finset.range N, 1 / (↑n + 1) ^ s - ↑N / (↑N + 1) ^ s)

full_name: ZetaAsymptotics.term_tsum_of_lt
code: /-- For `1 < s`, the topological sum of `ZetaAsymptotics.term (n + 1) s` over all `n : ℕ` is
`1 / (s - 1) - ζ s / s`.
-/
lemma term_tsum_of_lt {s : ℝ} (hs : 1 < s) :
    term_tsum s = (1 / (s - 1) - 1 / s * ∑' n : ℕ, 1 / (n + 1 : ℝ) ^ s) 
goal: ZetaAsymptotics.term_tsum s = 1 / (s - 1) - 1 / s * ∑' (n : ℕ), 1 / (↑n + 1) ^ s

full_name: ZetaAsymptotics.zeta_limit_aux1
code: /-- Reformulation of `ZetaAsymptotics.term_tsum_of_lt` which is useful for some computations
below. -/
lemma zeta_limit_aux1 {s : ℝ} (hs : 1 < s) :
    (∑' n : ℕ, 1 / (n + 1 : ℝ) ^ s) - 1 / (s - 1) = 1 - s * term_tsum s 
goal: ∑' (n : ℕ), 1 / (↑n + 1) ^ s - 1 / (s - 1) = 1 - s * ZetaAsymptotics.term_tsum s

full_name: ZetaAsymptotics.continuousOn_term
code: lemma continuousOn_term (n : ℕ) :
    ContinuousOn (fun x ↦ term (n + 1) x) (Ici 1) 
goal: ContinuousOn (fun x => ZetaAsymptotics.term (n + 1) x) (Set.Ici 1)

full_name: ZetaAsymptotics.continuousOn_term_tsum
code: lemma continuousOn_term_tsum : ContinuousOn term_tsum (Ici 1) 
goal: ContinuousOn ZetaAsymptotics.term_tsum (Set.Ici 1)

full_name: ZetaAsymptotics.tendsto_riemannZeta_sub_one_div_nhds_right
code: /-- First version of the limit formula, with a limit over real numbers tending to 1 from above. -/
lemma tendsto_riemannZeta_sub_one_div_nhds_right :
    Tendsto (fun s : ℝ ↦ riemannZeta s - 1 / (s - 1)) (𝓝[>] 1) (𝓝 γ) 
goal: Filter.Tendsto (fun s => riemannZeta ↑s - 1 / (↑s - 1)) (𝓝[>] 1) (𝓝 ↑γ)

full_name: tendsto_riemannZeta_sub_one_div
code: /-- The function `ζ s - 1 / (s - 1)` tends to `γ` as `s → 1`. -/
theorem _root_.tendsto_riemannZeta_sub_one_div :
    Tendsto (fun s : ℂ ↦ riemannZeta s - 1 / (s - 1)) (𝓝[≠] 1) (𝓝 γ) 
goal: Filter.Tendsto (fun s => riemannZeta s - 1 / (s - 1)) (𝓝[≠] 1) (𝓝 ↑γ)

full_name: isBigO_riemannZeta_sub_one_div
code: lemma _root_.isBigO_riemannZeta_sub_one_div {F : Type*} [Norm F] [One F] [NormOneClass F] :
    (fun s : ℂ ↦ riemannZeta s - 1 / (s - 1)) =O[𝓝 1] (fun _ ↦ 1 : ℂ → F) 
goal: (fun s => riemannZeta s - 1 / (s - 1)) =O[𝓝 1] fun x => 1

full_name: ZetaAsymptotics.tendsto_Gamma_term_aux
code: lemma tendsto_Gamma_term_aux : Tendsto (fun s ↦ 1 / (s - 1) - 1 / Gammaℝ s / (s - 1)) (𝓝[≠] 1)
    (𝓝 (-(γ + Complex.log (4 * ↑π)) / 2)) 
goal: Filter.Tendsto (fun s => 1 / (s - 1) - 1 / s.Gammaℝ / (s - 1)) (𝓝[≠] 1) (𝓝 (-(↑γ + Complex.log (4 * ↑π)) / 2))

full_name: ZetaAsymptotics.tendsto_riemannZeta_sub_one_div_Gammaℝ
code: lemma tendsto_riemannZeta_sub_one_div_Gammaℝ :
    Tendsto (fun s ↦ riemannZeta s - 1 / Gammaℝ s / (s - 1)) (𝓝[≠] 1)
    (𝓝 ((γ - Complex.log (4 * ↑π)) / 2)) 
goal: Filter.Tendsto (fun s => riemannZeta s - 1 / s.Gammaℝ / (s - 1)) (𝓝[≠] 1) (𝓝 ((↑γ - Complex.log (4 * ↑π)) / 2))

full_name: riemannZeta_one
code: /-- Formula for `ζ 1`. Note that mathematically `ζ 1` is undefined, but our construction ascribes
this particular value to it. -/
lemma _root_.riemannZeta_one : riemannZeta 1 = (γ - Complex.log (4 * ↑π)) / 2 
goal: riemannZeta 1 = (↑γ - Complex.log (4 * ↑π)) / 2

full_name: completedRiemannZeta_one
code: /-- Formula for `Λ 1`. Note that mathematically `Λ 1` is undefined, but our construction ascribes
this particular value to it. -/
lemma _root_.completedRiemannZeta_one :
    completedRiemannZeta 1 = (γ - Complex.log (4 * ↑π)) / 2 
goal: completedRiemannZeta 1 = (↑γ - Complex.log (4 * ↑π)) / 2

full_name: completedRiemannZeta₀_one
code: /-- Formula for `Λ₀ 1`, where `Λ₀` is the entire function satisfying
`Λ₀ s = π ^ (-s / 2) Γ(s / 2) ζ(s) + 1 / s + 1 / (1 - s)` away from `s = 0, 1`.

Note that `s = 1` is _not_ a pole of `Λ₀`, so this statement (unlike `riemannZeta_one`) is
a mathematically meaningful statement and is not dependent on Mathlib's particular conventions for
division by zero. -/
lemma _root_.completedRiemannZeta₀_one :
    completedRiemannZeta₀ 1 = (γ - Complex.log (4 * ↑π)) / 2 + 1 
goal: completedRiemannZeta₀ 1 = (↑γ - Complex.log (4 * ↑π)) / 2 + 1

full_name: riemannZeta_one_ne_zero
code: /-- With Mathlib's particular conventions, we have `ζ 1 ≠ 0`. -/
lemma _root_.riemannZeta_one_ne_zero : riemannZeta 1 ≠ 0 
goal: riemannZeta 1 ≠ 0