All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Auto cheby fourier summable

auto_cheby_fourier_summable

Plain-language statement

The series ∑ f(n)/n · 𝓕ψ(log(n/x)/(2π)) is summable for x ≥ 1.

Exact Lean statement

lemma auto_cheby_fourier_summable (hpos : 0 ≤ f) (hf : ∀ σ', 1 < σ' → Summable (nterm f σ'))
    (hG : ContinuousOn G {s | 1 ≤ s.re})
    (hG' : Set.EqOn G (fun s ↦ LSeries f s - A / (s - 1)) {s | 1 < s.re})
    (ψ : ℝ → ℂ) (hψSmooth : ContDiff ℝ ∞ ψ) (hψCompact : HasCompactSupport ψ)
    (hψpos : ∀ y, 0 ≤ (𝓕 ψ y).re ∧ (𝓕 ψ y).im = 0) (x : ℝ) (hx : 1 ≤ x) :
    Summable fun n ↦ (f n : ℂ) / n * 𝓕 ψ (1 / (2 * π) * Real.log (n / x))

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
lemma auto_cheby_fourier_summable (hpos : 0  f) (hf :  σ', 1 < σ'  Summable (nterm f σ'))    (hG : ContinuousOn G {s | 1  s.re})    (hG' : Set.EqOn G (fun s  LSeries f s - A / (s - 1)) {s | 1 < s.re})    (ψ :   ℂ) (hψSmooth : ContDiff  ∞ ψ) (hψCompact : HasCompactSupport ψ)    (hψpos :  y, 0  (𝓕 ψ y).re  (𝓕 ψ y).im = 0) (x : ) (hx : 1  x) :    Summable fun n  (f n : ℂ) / n * 𝓕 ψ (1 / (2 * π) * Real.log (n / x)) := by  let ψCS : CS 2:= ψ, hψSmooth.of_le (by norm_cast), hψCompact  let S :  := fun σ'  ∑' n, term (f · :   ℂ) σ' n * 𝓕 ψCS.toFun (1 / (2 * π) * Real.log (n / x))  let Pole :  := fun σ'  (A : ℂ) * (x ^ (1 - σ') : ) *    ∫ u in Set.Ici (-Real.log x), (rexp (-u * (σ' - 1)) : ℂ) * 𝓕 (W21.ofCS2 ψCS).toFun (u / (2 * π))  let RHS :  := fun σ'  ∫ t : , G (σ' + t * I) * ψCS.toFun t * (x : ℂ) ^ (t * I)  have l2 := limiting_fourier_lim2 (A := A) (x := x) ψCS hx  have l3 := limiting_fourier_lim3 (G := G) hG ψCS hx  have haux : (fun σ'  S σ' - Pole σ') =ᶠ[𝓝[>] 1] RHS := eventually_nhdsWithin_of_forall fun σ' hσ'  by    simpa [S, Pole, RHS] using! limiting_fourier_aux hG' hf ψCS hx σ' hσ'  have hS_tendsto : Tendsto S (𝓝[>] 1) (𝓝 (RHS 1 + A * ∫ u in Set.Ici (-Real.log x),      𝓕 (W21.ofCS2 ψCS).toFun (u / (2 * π)))) := by    convert! (l3.congr' haux.symm).add l2 using 1; ext σ'; simp [S, Pole]  have hbounded : BoundedAtFilter (𝓝[>] 1) (fun σ'  ‖S σ'‖) := by    simp only [BoundedAtFilter]    let L := ‖RHS 1 + A * ∫ u in Set.Ici (-Real.log x), 𝓕 (W21.ofCS2 ψCS).toFun (u / (2 * π))‖    have : ᶠ σ' in 𝓝[>] 1, ‖S σ'‖ < L + 1 :=      hS_tendsto.norm.eventually_lt tendsto_const_nhds (lt_add_one L)    exact Asymptotics.IsBigO.of_bound (L + 1) (by filter_upwards [this] with σ h; simpa using h.le)  let y :    := fun n  (1 / (2 * π)) * Real.log (n / x)  let w :    := fun n  (𝓕 ψCS.toFun (y n)).re  have hw :  n, 0  w n := fun n  (hψpos (y n)).1  let rt :      := fun σ n  if n = 0 then 0 else f n / (n : ) ^ σ * w n  have rt_nn σ n : 0  rt σ n := by    simp only [rt]; split_ifs with hn    · rfl    · exact mul_nonneg (div_nonneg (hpos n) (Real.rpow_pos_of_pos (Nat.cast_pos.mpr        (Nat.pos_of_ne_zero hn)) σ).le) (hw n)  have hS_eq σ' (hσ' : 1 < σ') : S σ' = ↑(∑' n, rt σ' n) := by    rw [Complex.ofReal_tsum]; apply tsum_congr; intro n    simp only [rt, term, LSeries.term, y, w, one_div, mul_inv_rev]    split_ifs with hn <;> simp only [hn, CharP.cast_eq_zero, Complex.ofReal_zero, zero_mul,      Complex.ofReal_mul, Complex.ofReal_div]    rw [Complex.ofReal_cpow (Nat.cast_nonneg n)]; congr 1    exact Complex.ext rfl (hψpos _).2  have hMono n : AntitoneOn (fun σ  rt σ n) (Set.Ioi 1) := fun σ₁ _ σ₂ _ h  by    simp only [rt]; split_ifs with hn; · rfl    apply mul_le_mul_of_nonneg_right _ (hw n)    apply div_le_div_of_nonneg_left (hpos n) (Real.rpow_pos_of_pos (Nat.cast_pos.mpr      (Nat.pos_of_ne_zero hn)) σ₁)    exact Real.rpow_le_rpow_of_exponent_le (Nat.one_le_cast.mpr (Nat.pos_of_ne_zero hn)) h  have hT_bdd : BoundedAtFilter (𝓝[>] 1) fun σ  ∑' n, rt σ n := by    rw [BoundedAtFilter, Asymptotics.isBigO_iff] at hbounded     obtain C, hC := hbounded    refine C, ?_    filter_upwards [hC, self_mem_nhdsWithin] with σ hnorm hσ    rw [hS_eq σ hσ] at hnorm; simpa using hnorm  have hSumm σ (hσ : 1 < σ) : Summable (rt σ ·) := by    simpa [rt, w, y] using limiting_fourier_variant_lim1_aux ψCS hpos hf hψpos σ hσ  have hSumm_1 : Summable (rt 1 ·) := by    let σ_seq :    := fun k  1 + 1 / ((k : ) + 1)    have hσ_gt k : 1 < σ_seq k := by simp only [σ_seq, lt_add_iff_pos_right, one_div]; positivity    have h_tendsto : Tendsto σ_seq atTop (𝓝[>] 1) := by      rw [tendsto_nhdsWithin_iff]      refine ?_, by filter_upwards with k; exact hσ_gt k      have : Tendsto (fun k :   1 / ((k : ) + 1)) atTop (𝓝 0) := by        simp only [one_div]; exact (tendsto_natCast_atTop_atTop.atTop_add tendsto_const_nhds).inv_tendsto_atTop      simpa [σ_seq] using tendsto_const_nhds.add this    have h_ptwise n : Tendsto (fun k  rt (σ_seq k) n) atTop (𝓝 (rt 1 n)) := by      simp only [rt]; split_ifs with hn; · exact tendsto_const_nhds      refine ((tendsto_const_nhds.rpow (tendsto_nhdsWithin_iff.mp h_tendsto).1 (Or.inl ?_)).inv₀        (by simp [hn])).const_mul (f n) |>.mul_const (w n)      exact (Nat.cast_pos.mpr (Nat.pos_of_ne_zero hn)).ne'    obtain C, hC := Asymptotics.isBigO_iff.mp (hT_bdd.comp_tendsto h_tendsto)    refine summable_of_sum_range_le (c := C) (rt_nn 1) fun m  le_of_tendsto (tendsto_finsetSum _        fun i _  h_ptwise i) ?_    filter_upwards [h_tendsto.eventually self_mem_nhdsWithin, hC] with k hk hCk    calc ∑ i  Finset.range m, rt (σ_seq k) i         ∑' n, rt (σ_seq k) n := (hSumm _ hk).sum_le_tsum _ fun n _  rt_nn _ n      _  |∑' n, rt (σ_seq k) n| := le_abs_self _      _  C := by simpa using hCk  rw [show (fun n  (f n : ℂ) / n * 𝓕 ψ (1 / (2 * π) * Real.log (n / x))) =      Complex.ofRealCLM ∘ (rt 1 ·) from ?_]  · exact hSumm_1.map Complex.ofRealCLM Complex.ofRealCLM.continuous  ext n; simp only [rt, Real.rpow_one, one_div, w, y, Function.comp_apply]  split_ifs with hn; · simp [hn]  have him0 : (𝓕 ψCS.toFun ((2 * π)⁻¹ * Real.log (n / x))).im = 0 := (hψpos _).2  have hre_eq : 𝓕 ψCS.toFun ((2 * π)⁻¹ * Real.log (n / x)) =      Complex.ofReal ((𝓕 ψCS.toFun ((2 * π)⁻¹ * Real.log (n / x))).re) := by    rw [ Complex.re_add_im (𝓕 ψCS.toFun _), him0]; simp  conv_lhs => rw [show ψ = ψCS.toFun from rfl, hre_eq]  simp only [Complex.ofRealCLM_apply, Complex.ofReal_div, Complex.ofReal_mul, Complex.ofReal_natCast]
Project
Prime Number Theorem and More
License
Apache-2.0
Commit
a93551347dce
Source
PrimeNumberTheoremAnd/Wiener.lean:3630-3716

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.32.0

Admissible bound mono

admissible_bound.mono

Plain-language statement

For positive parameters A,B,C,RA,B,C,R, the classical error-bound function A(logxR)Bexp ⁣(ClogxR)A\left(\frac{\log x}{R}\right)^B\exp\!\left(-C\sqrt{\frac{\log x}{R}}\right) is nonincreasing once xexp ⁣(R(2B/C)2)x\ge \exp\!\left(R(2B/C)^2\right).

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Analytic On div Removable zero

AnalyticOn_divRemovable_zero

Plain-language statement

Let ff be analytic on an open set ss containing 00, and suppose f(0)=0f(0)=0. Define g(z)=f(z)/zg(z)=f(z)/z for z0z\ne0 and g(0)=f(0)g(0)=f'(0). Then the apparent singularity at 00 is removable and gg is analytic throughout ss.

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Analytic On div Removable zero closed Ball

AnalyticOn_divRemovable_zero_closedBall

Plain-language statement

Suppose R>0R>0 and ff is analytic on the closed disc zR|z|\le R with f(0)=0f(0)=0. Define g(z)=f(z)/zg(z)=f(z)/z for z0z\ne0 and g(0)=f(0)g(0)=f'(0). Then gg is analytic on the entire closed disc, including at the removed singularity.

analytic number theoryprime numbersasymptotics

Source project: Prime Number Theorem and More

Person-level attribution pending.

View proof record