All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Limiting fourier variant

limiting_fourier_variant

Plain-language statement

A boundary Fourier identity for a Dirichlet series with a simple pole. Suppose f0f\ge0, the Dirichlet series L(f,s)L(f,s) differs from A/(s1)A/(s-1) by a function GG that extends continuously to Res1\operatorname{Re}s\ge1, and ψ\psi is a compactly supported C2C^2 test function with nonnegative real Fourier transform. For x>0x>0, n1f(n)nψ^ ⁣(12πlognx)Alogxψ^ ⁣(u2π)du=RG(1+it)ψ(t)xitdt.\sum_{n\ge1}\frac{f(n)}{n}\widehat\psi\!\left(\frac{1}{2\pi}\log\frac{n}{x}\right)-A\int_{-\log x}^{\infty}\widehat\psi\!\left(\frac{u}{2\pi}\right)du=\int_{\mathbb R}G(1+it)\psi(t)x^{it}\,dt.

Exact Lean statement

@[blueprint "limiting-fourier-variant"
  (title := "limiting-fourier-variant")
  (statement := /--
    If $\psi: \R \to \C$ is $C^2$ and compactly supported with $f$ and $\hat \psi$ non-negative, and $0 < x$, then
  $$ \sum_{n=1}^\infty \frac{f(n)}{n} \hat \psi( \frac{1}{2\pi} \log \frac{n}{x} ) - A \int_{-\log x}^\infty \hat \psi(\frac{u}{2\pi})\ du =  \int_\R G(1+it) \psi(t) x^{it}\ dt.$$
  -/)
  (proof := /-- Repeat the proof of Lemma \ref{limiting-fourier-variant}, but use monotone convergence instead of dominated convergence.  (The proof should be simpler, as one no longer needs to establish domination for the sum.) -/)
  (proofUses := ["decay", "second-fourier", "first-fourier"])
  (latexEnv := "lemma")]
lemma limiting_fourier_variant
    (hpos : 0 ≤ f)
    (hG : ContinuousOn G {s | 1 ≤ s.re})
    (hG' : Set.EqOn G (fun s ↦ LSeries f s - A / (s - 1)) {s | 1 < s.re})
    (hf : ∀ (σ' : ℝ), 1 < σ' → Summable (nterm f σ'))
    (ψ : CS 2 ℂ)
    (hψpos : ∀ y, 0 ≤ (𝓕 (ψ : ℝ → ℂ) y).re ∧ (𝓕 (ψ : ℝ → ℂ) y).im = 0)
    (hx : 0 < x) :
    ∑' n, f n / n * 𝓕 (ψ : ℝ → ℂ) (1 / (2 * π) * log (n / x)) -
      A * ∫ u in Set.Ici (-log x), 𝓕 (ψ : ℝ → ℂ) (u / (2 * π)) =
      ∫ (t : ℝ), (G (1 + t * I)) * (ψ t) * x ^ (t * I)

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint "limiting-fourier-variant"  (title := "limiting-fourier-variant")  (statement := /--    If $\psi: \R \to \C$ is $C^2$ and compactly supported with $f$ and $\hat \psi$ non-negative, and $0 < x$, then  $$ \sum_{n=1}^\infty \frac{f(n)}{n} \hat \psi( \frac{1}{2\pi} \log \frac{n}{x} ) - A \int_{-\log x}^\infty \hat \psi(\frac{u}{2\pi})\ du =  \int_\R G(1+it) \psi(t) x^{it}\ dt.$$  -/)  (proof := /-- Repeat the proof of Lemma \ref{limiting-fourier-variant}, but use monotone convergence instead of dominated convergence.  (The proof should be simpler, as one no longer needs to establish domination for the sum.) -/)  (proofUses := ["decay", "second-fourier", "first-fourier"])  (latexEnv := "lemma")]lemma limiting_fourier_variant    (hpos : 0  f)    (hG : ContinuousOn G {s | 1  s.re})    (hG' : Set.EqOn G (fun s  LSeries f s - A / (s - 1)) {s | 1 < s.re})    (hf :  (σ' : ), 1 < σ'  Summable (nterm f σ'))    (ψ : CS 2 ℂ)    (hψpos :  y, 0  (𝓕 (ψ :   ℂ) y).re  (𝓕 (ψ :   ℂ) y).im = 0)    (hx : 0 < x) :    ∑' n, f n / n * 𝓕 (ψ :   ℂ) (1 / (2 * π) * log (n / x)) -      A * ∫ u in Set.Ici (-log x), 𝓕 (ψ :   ℂ) (u / (2 * π)) =      ∫ (t : ), (G (1 + t * I)) * (ψ t) * x ^ (t * I) := by   have l2 := limiting_fourier_lim2_gt_zero (A := A) (x := x) ψ hx  have l3 := limiting_fourier_lim3_gt_zero (G := G) (x := x) hG ψ hx   let S :  := fun σ' =>    ∑' n : ,      term (fun n  (f n : ℂ)) σ' n *        𝓕 ψ.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 ψ).toFun (u / (2 * π))  let RHS :  := fun σ' =>    ∫ t : , G (σ' + t * I) * ψ.toFun t * (x : ℂ) ^ (t * I)    have haux :    (fun σ'         ∑' (n : ),          term (fun n  (f n : ℂ)) (σ' : ℂ) n *            𝓕 ψ.toFun (π⁻¹ * 2⁻¹ * Real.log ((n : ) / x))        - (A : ℂ) * ((x ^ (1 - σ') : ) : ℂ) *          ∫ (u : ) in Ici (-Real.log x),            cexp (-( (u : ℂ) * ((σ' : ℂ) - 1))) *              𝓕 (W21.ofCS2 ψ).toFun (u / (2 * π)))      =ᶠ[𝓝[>] (1 : )]    (fun σ'       ∫ (t : ), G ((σ' : ℂ) + (t : ℂ) * I) * ψ.toFun t * (x : ℂ) ^ ((t : ℂ) * I)) := by    rw [Filter.EventuallyEq]     refine eventually_nhdsWithin_of_forall ?_    intro σ' hσ'    have hσ' : (1 : ) < σ' := by      simpa [Set.mem_Ioi] using hσ'    simpa using! (limiting_fourier_aux_gt_zero (G := G) (f := f) (A := A) hG' hf ψ hx σ' hσ')   have haux' :    (fun σ' :  => S σ') =ᶠ[𝓝[>] (1 : )] (fun σ' :  => RHS σ' + Pole σ') := by    rw [Filter.EventuallyEq] at haux     filter_upwards [haux] with σ' hσ'    have hσ'' : S σ' - Pole σ' = RHS σ' := by      simpa [S, Pole, RHS] using hσ'    have hadd : (S σ' - Pole σ') + Pole σ' = RHS σ' + Pole σ' :=      congrArg (fun z : ℂ => z + Pole σ') hσ''    simpa [sub_eq_add_neg, add_assoc, add_left_comm, add_comm] using hadd   let Pole₁ : ℂ := (A : ℂ) * ∫ u in Set.Ici (-Real.log x), 𝓕 (W21.ofCS2 ψ).toFun (u / (2 * π))  let RHS₁ : ℂ := ∫ t : , G (1 + (t : ℂ) * I) * ψ.toFun t * (x : ℂ) ^ ((t : ℂ) * I)   have hRHS_le :      ᶠ σ' :  in 𝓝[>] (1 : ), ‖RHS σ'‖  ‖RHS₁‖ + 1 := by    have hball : Metric.ball RHS₁ (1 : )  𝓝 RHS₁ := by      simpa using (Metric.ball_mem_nhds (x := RHS₁) (ε := (1 : )) (by norm_num))    have hpre : {σ' :  | RHS σ'  Metric.ball RHS₁ (1 : )}  (𝓝[>] (1 : )) :=      l3 hball    filter_upwards [hpre] with σ' hmem    have hdist' : dist (RHS σ') RHS₁ < (1 : ) := by      simpa [Metric.mem_ball] using hmem    have hdist : ‖RHS σ' - RHS₁‖ < (1 : ) := by      simpa [dist_eq_norm] using hdist'    have htri : ‖RHS σ'‖  ‖RHS₁‖ + ‖RHS σ' - RHS₁‖ := by      have h := norm_add_le (RHS σ' - RHS₁) RHS₁      simpa [sub_add_cancel, add_comm, add_left_comm, add_assoc] using h    have hle : ‖RHS₁‖ + ‖RHS σ' - RHS₁‖  ‖RHS₁‖ + (1 : ) := by      exact add_le_add_right (le_of_lt hdist) ‖RHS₁‖    exact htri.trans hle   have hPole_le :    ᶠ σ' :  in 𝓝[>] (1 : ), ‖Pole σ'‖ Pole₁‖ + 1 := by    have hball : Metric.ball Pole1  𝓝 Pole:= by      simpa using (Metric.ball_mem_nhds Pole₁ (by norm_num : (0 : ) < 1))    have hpre : {σ' :  | Pole σ'  Metric.ball Pole1}  (𝓝[>] (1 : )) := l2 hball    filter_upwards [hpre] with σ' hmem    have hdist : ‖Pole σ' - Pole₁‖ < 1 := by      simpa [Metric.mem_ball, dist_eq_norm] using hmem    have htri : ‖Pole σ'‖ Pole₁‖ +Pole σ' - Pole₁‖ := by      have hdecomp : Pole σ' = Pole+ (Pole σ' - Pole₁) := by abel      have hnorm_eq : ‖Pole σ'‖ =Pole+ (Pole σ' - Pole₁)‖ := by        simp [congrArg (fun z : ℂ => ‖z‖) hdecomp]      calcPole σ'‖ =Pole+ (Pole σ' - Pole₁)‖ := hnorm_eq        _ Pole₁‖ +Pole σ' - Pole₁‖ := norm_add_le _ _    have hdist_le : ‖Pole σ' - Pole₁‖  1 := le_of_lt hdist    have hsum : ‖Pole₁‖ +Pole σ' - Pole₁‖ Pole₁‖ + 1 := by      simpa [add_comm, add_left_comm, add_assoc] using (add_le_add_left hdist_le ‖Pole₁‖)    exact htri.trans hsum   have hS_le :      ᶠ σ' :  in 𝓝[>] (1 : ),        ‖S σ'‖  (‖RHS₁‖ + 1) + (‖Pole₁‖ + 1) := by    rw [Filter.EventuallyEq] at haux'    filter_upwards [haux', hRHS_le, hPole_le] with σ' hEq hR hP    calc      ‖S σ'‖ = ‖RHS σ' + Pole σ'‖ := by simp [hEq]      _  ‖RHS σ'‖ +Pole σ'‖ := norm_add_le _ _      _  (‖RHS₁‖ + 1) + (‖Pole₁‖ + 1) := by        exact add_le_add hR hP   have hbounded : BoundedAtFilter (𝓝[>] (1 : )) (fun σ' :  => ‖S σ'‖) := by    let C :  := ‖RHS₁‖ + 1 + (‖Pole₁‖ + 1)    simp only [BoundedAtFilter, Asymptotics.IsBigO, Asymptotics.IsBigOWith]    refine C, ?_    filter_upwards [hS_le] with σ' hσ'    simpa [Real.norm_eq_abs, abs_of_nonneg (norm_nonneg (S σ'))] using hσ'   have hcoef : (1 / (2 * π) : ) = (π⁻¹ * 2⁻¹ : ) := by field_simp [pi_ne_zero]   have l1 :=    limiting_fourier_variant_lim1      (f := f) (x := x) (ψ := ψ)      hpos hψpos      (S := S)      (hSdef := by        intro σ        simp [S, hcoef] )      hbounded      hf  have l1S :    Tendsto S (𝓝[>] (1 : ))      (𝓝 (∑' n : , (f n : ℂ) / (n : ℂ) * 𝓕 ψ.toFun (1 / (2 * π) * Real.log (↑n / x)))) := by    simpa [S, hcoef] using l1   have l12 : Tendsto (fun σ' :  => S σ' - Pole σ') (𝓝[>] (1 : ))    (𝓝 ((∑' n : , (f n : ℂ) / (n : ℂ) * 𝓕 ψ.toFun (1 / (2 * π) * Real.log (↑n / x))) - Pole₁)) :=  l1S.sub l2   have hPole : (Pole :   ℂ) =ᶠ[𝓝[>] (1 : )] Pole := by simp  have haux_sub :    (fun σ' :  => S σ' - Pole σ') =ᶠ[𝓝[>] (1 : )] RHS := by    filter_upwards [haux'] with σ' hσ'    calc      S σ' - Pole σ'          = (RHS σ' + Pole σ') - Pole σ' := by simp [hσ']      _   = RHS σ' := by simp  have hlim :=    tendsto_nhds_unique_of_eventuallyEq (l1S.sub l2) l3 haux_sub   simpa [Pole₁, RHS₁] using! hlim
Project
Prime Number Theorem and More
License
Apache-2.0
Commit
a93551347dce
Source
PrimeNumberTheoremAnd/Wiener.lean:2999-3157

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