File: Mathlib/NumberTheory/LSeries/Dirichlet.lean

full_name: ArithmeticFunction.one_eq_delta
code: /-- `δ` is the function underlying the arithmetic function `1`. -/
lemma ArithmeticFunction.one_eq_delta : ↗(1 : ArithmeticFunction ℂ) = δ 
goal: (fun n => 1 n) = δ

full_name: ArithmeticFunction.not_LSeriesSummable_moebius_at_one
code: lemma not_LSeriesSummable_moebius_at_one : ¬ LSeriesSummable ↗μ 1 
goal: ¬LSeriesSummable (fun n => ↑(ArithmeticFunction.moebius n)) 1

full_name: ArithmeticFunction.LSeriesSummable_moebius_iff
code: /-- The L-series of the Möbius function converges absolutely at `s` if and only if `re s > 1`. -/
lemma LSeriesSummable_moebius_iff {s : ℂ} : LSeriesSummable ↗μ s ↔ 1 < s.re 
goal: LSeriesSummable (fun n => ↑(ArithmeticFunction.moebius n)) s ↔ 1 < s.re

full_name: ArithmeticFunction.abscissaOfAbsConv_moebius
code: /-- The abscissa of absolute convergence of the L-series of the Möbius function is `1`. -/
lemma abscissaOfAbsConv_moebius : abscissaOfAbsConv ↗μ = 1 
goal: (LSeries.abscissaOfAbsConv fun n => ↑(ArithmeticFunction.moebius n)) = 1

full_name: ArithmeticFunction.const_one_eq_zeta
code: lemma ArithmeticFunction.const_one_eq_zeta {R : Type*} [Semiring R] {n : ℕ} (hn : n ≠ 0) :
    (1 : ℕ → R) n = (ζ ·) n 
goal: 1 n = ↑((fun x => ArithmeticFunction.zeta x) n)

full_name: LSeries.one_convolution_eq_zeta_convolution
code: lemma LSeries.one_convolution_eq_zeta_convolution {R : Type*} [Semiring R] (f : ℕ → R) :
    (1 : ℕ → R) ⍟ f = ((ArithmeticFunction.zeta ·) : ℕ → R) ⍟ f 
goal: 1 ⍟ f = (fun x => ↑(ArithmeticFunction.zeta x)) ⍟ f

full_name: LSeries.convolution_one_eq_convolution_zeta
code: lemma LSeries.convolution_one_eq_convolution_zeta {R : Type*} [Semiring R] (f : ℕ → R) :
    f ⍟ (1 : ℕ → R) = f ⍟ ((ArithmeticFunction.zeta ·) : ℕ → R) 
goal: f ⍟ 1 = f ⍟ fun x => ↑(ArithmeticFunction.zeta x)

full_name: _aux_Mathlib_NumberTheory_LSeries_Dirichlet___macroRules_Dchar_one_1
code: /-- `χ₁` is (local) notation for the (necessarily trivial) Dirichlet character modulo `1`. -/
local notation (name := Dchar_one) "χ₁" => (1 : DirichletCharacter ℂ 1)
goal: Lean.Macro

full_name: Dchar_one
code: /-- `χ₁` is (local) notation for the (necessarily trivial) Dirichlet character modulo `1`. -/
local notation (name := Dchar_one) "χ₁" => (1 : DirichletCharacter ℂ 1)
goal: Lean.ParserDescr

full_name: DirichletCharacter.mul_convolution_distrib
code: /-- Twisting by a Dirichlet character `χ` distributes over convolution. -/
lemma mul_convolution_distrib {R : Type*} [CommSemiring R] {n : ℕ} (χ : DirichletCharacter R n)
    (f g : ℕ → R) :
    (((χ ·) : ℕ → R) * f) ⍟ (((χ ·) : ℕ → R) * g) = ((χ ·) : ℕ → R) * (f ⍟ g) 
goal: (fun x => χ ↑x) * f ⍟ ((fun x => χ ↑x) * g) = (fun x => χ ↑x) * (f ⍟ g)

full_name: DirichletCharacter.mul_delta
code: lemma mul_delta {n : ℕ} (χ : DirichletCharacter ℂ n) : ↗χ * δ = δ 
goal: (fun n_1 => χ ↑n_1) * δ = δ

full_name: DirichletCharacter.delta_mul
code: lemma delta_mul {n : ℕ} (χ : DirichletCharacter ℂ n) : δ * ↗χ = δ 
goal: (δ * fun n_1 => χ ↑n_1) = δ

full_name: DirichletCharacter.convolution_mul_moebius
code: /-- The convolution of a Dirichlet character `χ` with the twist `χ * μ` is `δ`,
the indicator function of `{1}`. -/
lemma convolution_mul_moebius {n : ℕ} (χ : DirichletCharacter ℂ n) : ↗χ ⍟ (↗χ * ↗μ) = δ 
goal: (fun n_1 => χ ↑n_1) ⍟ ((fun n_1 => χ ↑n_1) * fun n => ↑(ArithmeticFunction.moebius n)) = δ

full_name: DirichletCharacter.modZero_eq_delta
code: /-- The Dirichlet character mod `0` corresponds to `δ`. -/
lemma modZero_eq_delta {χ : DirichletCharacter ℂ 0} : ↗χ = δ 
goal: (fun n => χ ↑n) = δ

full_name: DirichletCharacter.modOne_eq_one
code: /-- The Dirichlet character mod `1` corresponds to the constant function `1`. -/
lemma modOne_eq_one {R : Type*} [CommSemiring R] {χ : DirichletCharacter R 1} :
    ((χ ·) : ℕ → R) = 1 
goal: (fun x => χ ↑x) = 1

full_name: DirichletCharacter.LSeries_modOne_eq
code: lemma LSeries_modOne_eq : L ↗χ₁ = L 1 
goal: (L fun n => 1 ↑n) = L 1

full_name: DirichletCharacter.not_LSeriesSummable_at_one
code: /-- The L-series of a Dirichlet character mod `N > 0` does not converge absolutely at `s = 1`. -/
lemma not_LSeriesSummable_at_one {N : ℕ} (hN : N ≠ 0) (χ : DirichletCharacter ℂ N) :
    ¬ LSeriesSummable ↗χ 1 
goal: ¬LSeriesSummable (fun n => χ ↑n) 1

full_name: DirichletCharacter.LSeriesSummable_of_one_lt_re
code: /-- The L-series of a Dirichlet character converges absolutely at `s` if `re s > 1`. -/
lemma LSeriesSummable_of_one_lt_re {N : ℕ} (χ : DirichletCharacter ℂ N) {s : ℂ} (hs : 1 < s.re) :
    LSeriesSummable ↗χ s 
goal: LSeriesSummable (fun n => χ ↑n) s

full_name: DirichletCharacter.LSeriesSummable_iff
code: /-- The L-series of a Dirichlet character mod `N > 0` converges absolutely at `s` if and only if
`re s > 1`. -/
lemma LSeriesSummable_iff {N : ℕ} (hN : N ≠ 0) (χ : DirichletCharacter ℂ N) {s : ℂ} :
    LSeriesSummable ↗χ s ↔ 1 < s.re 
goal: LSeriesSummable (fun n => χ ↑n) s ↔ 1 < s.re

full_name: DirichletCharacter.absicssaOfAbsConv_eq_one
code: /-- The abscissa of absolute convergence of the L-series of a Dirichlet character mod `N > 0`
is `1`. -/
lemma absicssaOfAbsConv_eq_one {N : ℕ} (hn : N ≠ 0) (χ : DirichletCharacter ℂ N) :
    abscissaOfAbsConv ↗χ = 1 
goal: (LSeries.abscissaOfAbsConv fun n => χ ↑n) = 1

full_name: DirichletCharacter.LSeriesSummable_mul
code: /-- The L-series of the twist of `f` by a Dirichlet character converges at `s` if the L-series
of `f` does. -/
lemma LSeriesSummable_mul {N : ℕ} (χ : DirichletCharacter ℂ N) {f : ℕ → ℂ} {s : ℂ}
    (h : LSeriesSummable f s) :
    LSeriesSummable (↗χ * f) s 
goal: LSeriesSummable ((fun n => χ ↑n) * f) s

full_name: DirichletCharacter.LSeries.mul_mu_eq_one
code: /-- The L-series of a Dirichlet character `χ` and of the twist of `μ` by `χ` are multiplicative
inverses. -/
lemma LSeries.mul_mu_eq_one {N : ℕ} (χ : DirichletCharacter ℂ N) {s : ℂ}
    (hs : 1 < s.re) : L ↗χ s * L (↗χ * ↗μ) s = 1 
goal: L (fun n => χ ↑n) s * L ((fun n => χ ↑n) * fun n => ↑(ArithmeticFunction.moebius n)) s = 1

full_name: DirichletCharacter.LSeries_ne_zero_of_one_lt_re
code: /-- The L-series of a Dirichlet character does not vanish on the right half-plane `re s > 1`. -/
lemma LSeries_ne_zero_of_one_lt_re {N : ℕ} (χ : DirichletCharacter ℂ N) {s : ℂ} (hs : 1 < s.re) :
    L ↗χ s ≠ 0 
goal: L (fun n => χ ↑n) s ≠ 0

full_name: LSeries.abscissaOfAbsConv_one
code: /-- The abscissa of (absolute) convergence of the constant sequence `1` is `1`. -/
lemma LSeries.abscissaOfAbsConv_one : abscissaOfAbsConv 1 = 1 
goal: LSeries.abscissaOfAbsConv 1 = 1

full_name: LSeriesSummable_one_iff
code: /-- The `LSeries` of the constant sequence `1` converges at `s` if and only if `re s > 1`. -/
theorem LSeriesSummable_one_iff {s : ℂ} : LSeriesSummable 1 s ↔ 1 < s.re 
goal: LSeriesSummable 1 s ↔ 1 < s.re

full_name: ArithmeticFunction.LSeries_zeta_eq
code: /-- The `LSeries` of the arithmetic function `ζ` is the same as the `LSeries` associated
to the constant sequence `1`. -/
lemma LSeries_zeta_eq : L ↗ζ = L 1 
goal: (L fun n => ↑(ArithmeticFunction.zeta n)) = L 1

full_name: ArithmeticFunction.LSeriesSummable_zeta_iff
code: /-- The `LSeries` associated to the arithmetic function `ζ` converges at `s` if and only if
`re s > 1`. -/
theorem LSeriesSummable_zeta_iff {s : ℂ} : LSeriesSummable (ζ ·) s ↔ 1 < s.re 
goal: LSeriesSummable (fun x => ↑(ArithmeticFunction.zeta x)) s ↔ 1 < s.re

full_name: ArithmeticFunction.abscissaOfAbsConv_zeta
code: /-- The abscissa of (absolute) convergence of the arithmetic function `ζ` is `1`. -/
lemma abscissaOfAbsConv_zeta : abscissaOfAbsConv ↗ζ = 1 
goal: (LSeries.abscissaOfAbsConv fun n => ↑(ArithmeticFunction.zeta n)) = 1

full_name: ArithmeticFunction.LSeries_zeta_eq_riemannZeta
code: /-- The L-series of the arithmetic function `ζ` equals the Riemann Zeta Function on its
domain of convergence `1 < re s`. -/
lemma LSeries_zeta_eq_riemannZeta {s : ℂ} (hs : 1 < s.re) : L ↗ζ s = riemannZeta s 
goal: L (fun n => ↑(ArithmeticFunction.zeta n)) s = riemannZeta s

full_name: ArithmeticFunction.LSeriesHasSum_zeta
code: /-- The L-series of the arithmetic function `ζ` equals the Riemann Zeta Function on its
domain of convergence `1 < re s`. -/
lemma LSeriesHasSum_zeta {s : ℂ} (hs : 1 < s.re) : LSeriesHasSum ↗ζ s (riemannZeta s) 
goal: LSeriesHasSum (fun n => ↑(ArithmeticFunction.zeta n)) s (riemannZeta s)

full_name: ArithmeticFunction.LSeries_zeta_mul_Lseries_moebius
code: /-- The L-series of the arithmetic function `ζ` and of the Möbius function are inverses. -/
lemma LSeries_zeta_mul_Lseries_moebius {s : ℂ} (hs : 1 < s.re) : L ↗ζ s * L ↗μ s = 1 
goal: L (fun n => ↑(ArithmeticFunction.zeta n)) s * L (fun n => ↑(ArithmeticFunction.moebius n)) s = 1

full_name: ArithmeticFunction.LSeries_zeta_ne_zero_of_one_lt_re
code: /-- The L-series of the arithmetic function `ζ` does not vanish on the right half-plane
`re s > 1`. -/
lemma LSeries_zeta_ne_zero_of_one_lt_re {s : ℂ} (hs : 1 < s.re) : L ↗ζ s ≠ 0 
goal: L (fun n => ↑(ArithmeticFunction.zeta n)) s ≠ 0

full_name: LSeries_one_eq_riemannZeta
code: /-- The L-series of the constant sequence `1` equals the Riemann Zeta Function on its
domain of convergence `1 < re s`. -/
lemma LSeries_one_eq_riemannZeta {s : ℂ} (hs : 1 < s.re) : L 1 s = riemannZeta s 
goal: L 1 s = riemannZeta s

full_name: LSeriesHasSum_one
code: /-- The L-series of the constant sequence `1` equals the Riemann zeta function on its
domain of convergence `1 < re s`. -/
lemma LSeriesHasSum_one {s : ℂ} (hs : 1 < s.re) : LSeriesHasSum 1 s (riemannZeta s) 
goal: LSeriesHasSum 1 s (riemannZeta s)

full_name: LSeries_one_mul_Lseries_moebius
code: /-- The L-series of the constant sequence `1` and of the Möbius function are inverses. -/
lemma LSeries_one_mul_Lseries_moebius {s : ℂ} (hs : 1 < s.re) : L 1 s * L ↗μ s = 1 
goal: L 1 s * L (fun n => ↑(ArithmeticFunction.moebius n)) s = 1

full_name: LSeries_one_ne_zero_of_one_lt_re
code: /-- The L-series of the constant sequence `1` does not vanish on the right half-plane
`re s > 1`. -/
lemma LSeries_one_ne_zero_of_one_lt_re {s : ℂ} (hs : 1 < s.re) : L 1 s ≠ 0 
goal: L 1 s ≠ 0

full_name: riemannZeta_ne_zero_of_one_lt_re
code: /-- The Riemann Zeta Function does not vanish on the half-plane `re s > 1`. -/
lemma riemannZeta_ne_zero_of_one_lt_re {s : ℂ} (hs : 1 < s.re) : riemannZeta s ≠ 0 
goal: riemannZeta s ≠ 0

full_name: ArithmeticFunction.convolution_vonMangoldt_zeta
code: /-- A translation of the relation `Λ * ↑ζ = log` of (real-valued) arithmetic functions
to an equality of complex sequences. -/
lemma convolution_vonMangoldt_zeta : ↗Λ ⍟ ↗ζ = ↗Complex.log 
goal: ((fun n => ↑(ArithmeticFunction.vonMangoldt n)) ⍟ fun n => ↑(ArithmeticFunction.zeta n)) = fun n => Complex.log ↑n

full_name: ArithmeticFunction.convolution_vonMangoldt_const_one
code: lemma convolution_vonMangoldt_const_one : ↗Λ ⍟ 1 = ↗Complex.log 
goal: (fun n => ↑(ArithmeticFunction.vonMangoldt n)) ⍟ 1 = fun n => Complex.log ↑n

full_name: ArithmeticFunction.LSeriesSummable_vonMangoldt
code: /-- The L-series of the von Mangoldt function `Λ` converges at `s` when `re s > 1`. -/
lemma LSeriesSummable_vonMangoldt {s : ℂ} (hs : 1 < s.re) : LSeriesSummable ↗Λ s 
goal: LSeriesSummable (fun n => ↑(ArithmeticFunction.vonMangoldt n)) s

full_name: DirichletCharacter.convolution_twist_vonMangoldt
code: /-- A twisted version of the relation `Λ * ↑ζ = log` in terms of complex sequences. -/
lemma convolution_twist_vonMangoldt {N : ℕ} (χ : DirichletCharacter ℂ N) :
    (↗χ * ↗Λ) ⍟ ↗χ = ↗χ * ↗Complex.log 
goal: (((fun n => χ ↑n) * fun n => ↑(ArithmeticFunction.vonMangoldt n)) ⍟ fun n => χ ↑n) =
  (fun n => χ ↑n) * fun n => Complex.log ↑n

full_name: DirichletCharacter.LSeriesSummable_twist_vonMangoldt
code: /-- The L-series of the twist of the von Mangoldt function `Λ` by a Dirichlet character `χ`
converges at `s` when `re s > 1`. -/
lemma LSeriesSummable_twist_vonMangoldt {N : ℕ} (χ : DirichletCharacter ℂ N) {s : ℂ}
    (hs : 1 < s.re) :
    LSeriesSummable (↗χ * ↗Λ) s 
goal: LSeriesSummable ((fun n => χ ↑n) * fun n => ↑(ArithmeticFunction.vonMangoldt n)) s

full_name: DirichletCharacter.LSeries_twist_vonMangoldt_eq
code: /-- The L-series of the twist of the von Mangoldt function `Λ` by a Dirichlet character `χ` at `s`
equals the negative logarithmic derivative of the L-series of `χ` when `re s > 1`. -/
lemma LSeries_twist_vonMangoldt_eq {N : ℕ} (χ : DirichletCharacter ℂ N) {s : ℂ} (hs : 1 < s.re) :
    L (↗χ * ↗Λ) s = - deriv (L ↗χ) s / L ↗χ s 
goal: L ((fun n => χ ↑n) * fun n => ↑(ArithmeticFunction.vonMangoldt n)) s = -deriv (L fun n => χ ↑n) s / L (fun n => χ ↑n) s

full_name: ArithmeticFunction.LSeries_vonMangoldt_eq
code: /-- The L-series of the von Mangoldt function `Λ` equals the negative logarithmic derivative
of the L-series of the constant sequence `1` on its domain of convergence `re s > 1`. -/
lemma LSeries_vonMangoldt_eq {s : ℂ} (hs : 1 < s.re) : L ↗Λ s = - deriv (L 1) s / L 1 s 
goal: L (fun n => ↑(ArithmeticFunction.vonMangoldt n)) s = -deriv (L 1) s / L 1 s

full_name: ArithmeticFunction.LSeries_vonMangoldt_eq_deriv_riemannZeta_div
code: /-- The L-series of the von Mangoldt function `Λ` equals the negative logarithmic derivative
of the Riemann zeta function on its domain of convergence `re s > 1`. -/
lemma LSeries_vonMangoldt_eq_deriv_riemannZeta_div {s : ℂ} (hs : 1 < s.re) :
    L ↗Λ s = - deriv riemannZeta s / riemannZeta s 
goal: L (fun n => ↑(ArithmeticFunction.vonMangoldt n)) s = -deriv riemannZeta s / riemannZeta s