Skip to main content
AlexKontorovich/PrimeNumberTheoremAnd
Source indexedtheorem · leanprover/lean4:v4.32.0

CH2.lemma_5_1_h

PrimeNumberTheoremAnd.IEANTN.CH2.CH2 · PrimeNumberTheoremAnd/IEANTN/CH2/CH2.lean:2575 to 2639

Mathematical statement

Exact Lean statement

@[blueprint
  "ch2-lemma-5-1-h"
  (title := "$C_{n,1}^+ \\to C$ (CH2 Lemma 5.1, contour limit)")
  (statement := /--
  As $n \to \infty$ (so $\sigma_n \to -\infty$), the integral of $G^\star x^s$ over $C_{n,1}^+$
  converges to its integral over the full contour $C$:
  $$ \lim_{n\to\infty} \int_{C_{n,1}^+} G^\star(s) x^s\, ds = \int_C G^\star(s) x^s\, ds. $$ -/)
  (proof := /-- $C_{n,1}^+$ differs from $C$ (truncated at height $\delta$) only in its horizontal
  segment $1 + i\delta \to \sigma_n + i\delta$, which exhausts the ray $1 + i\delta \to -\infty + i\delta$, and its
  vertical segment $\sigma_n + i\delta \to \sigma_n + iT$, which vanishes --- both as in
  \ref{ch2-lemma-5-1-e}, \ref{ch2-lemma-5-1-f}, here at height $\delta$, using boundedness of
  $G^\star x_0^s$ on $L$ and on $C$. -/)
  (latexEnv := "sublemma")
  (discussion := 1455)]
theorem lemma_5_1_h (hx₀ : 1 ≤ x₀) (hx : x₀ < x)
    (hG_star_mero : MeromorphicOn G_star l.R)
    (hGs_L : IsBoundedNoPolesOn (fun s ↦ G_star s * (x₀ : ℂ) ^ s) l.L)
    (hGs_contour : IsBoundedNoPolesOn (fun s ↦ G_star s * (x₀ : ℂ) ^ s) l.admissible_contour) :
  Filter.Tendsto (fun n ↦ l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s)) Filter.atTop
    (nhds (l.intC (fun s ↦ G_star s * (x : ℂ) ^ s)))

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint  "ch2-lemma-5-1-h"  (title := "$C_{n,1}^+ \\to C$ (CH2 Lemma 5.1, contour limit)")  (statement := /--  As $n \to \infty$ (so $\sigma_n \to -\infty$), the integral of $G^\star x^s$ over $C_{n,1}^+$  converges to its integral over the full contour $C$:  $$ \lim_{n\to\infty} \int_{C_{n,1}^+} G^\star(s) x^s\, ds = \int_C G^\star(s) x^s\, ds. $$ -/)  (proof := /-- $C_{n,1}^+$ differs from $C$ (truncated at height $\delta$) only in its horizontal  segment $1 + i\delta \to \sigma_n + i\delta$, which exhausts the ray $1 + i\delta \to -\infty + i\delta$, and its  vertical segment $\sigma_n + i\delta \to \sigma_n + iT$, which vanishes --- both as in  \ref{ch2-lemma-5-1-e}, \ref{ch2-lemma-5-1-f}, here at height $\delta$, using boundedness of  $G^\star x_0^s$ on $L$ and on $C$. -/)  (latexEnv := "sublemma")  (discussion := 1455)]theorem lemma_5_1_h (hx₀ : 1  x₀) (hx : x₀ < x)    (hG_star_mero : MeromorphicOn G_star l.R)    (hGs_L : IsBoundedNoPolesOn (fun s  G_star s * (x₀ : ℂ) ^ s) l.L)    (hGs_contour : IsBoundedNoPolesOn (fun s  G_star s * (x₀ : ℂ) ^ s) l.admissible_contour) :  Filter.Tendsto (fun n  l.intCn1Plus n (fun s  G_star s * (x : ℂ) ^ s)) Filter.atTop    (nhds (l.intC (fun s  G_star s * (x : ℂ) ^ s))) := by  let F : ℂ := fun s  G_star s * (x : ℂ) ^ s  have h_meas_mul : AEStronglyMeasurable (fun r :   G_star (r + l.δ * Complex.I) * (x : ℂ) ^ (r + l.δ * Complex.I))    (MeasureTheory.volume.restrict (Set.Iic 1)) := aestronglyMeasurable_horizontal_path_mul_cpow_of_meromorphic      l G_star x₀ x l.δ hx₀ hx (fun z hz  l.admissible_contour_subset_R (Or.inl hz)) hG_star_mero      fun z hz  meromorphicOrderAt_nonneg_on_of_bounded l hx₀ l.admissible_contour_subset_R hG_star_mero hGs_contour z (Or.inl hz)  have h_meas : AEStronglyMeasurable (fun r :   F ((r : ℂ) + l.δ * Complex.I))        (MeasureTheory.volume.restrict (Set.Iic 1)) := by simpa [F] using h_meas_mul  have h_int_ray : IntegrableOnHRay l.δ 1 F := by    unfold IntegrableOnHRay    obtain M, hM := hGs_contour    let C :  := max M 0    have hx₀_pos : 0 < x₀ := by linarith    have hx_pos : 0 < x := by linarith    have hratio_pos : 0 < x / x₀ := div_pos hx_pos hx₀_pos    have hlog_ratio_pos : 0 < Real.log (x / x₀) := Real.log_pos (by rw [one_lt_div hx₀_pos]; linarith)    have h_int_bound :        IntegrableOn (fun r :   C * Real.exp (Real.log (x / x₀) * r)) (Set.Iic 1) :=      (integrableOn_exp_mul_Iic hlog_ratio_pos 1).const_mul C    have h_bound :  r  Set.Iic (1 : ), ‖F ((r : ℂ) + l.δ * Complex.I)‖  C * Real.exp (Real.log (x / x₀) * r) := by      intro r hr      have hr' : r  1 := by simpa using hr      have hz_ac : (r : ℂ) + l.δ * Complex.I  l.admissible_contour := by        left        exact by simpa using hr', by simp      simpa [F, C] using norm_G_mul_cpow_le_of_base_bound G_star x₀ x l.δ r M hx₀ hx ((hM _ hz_ac).1)    exact h_int_bound.mono' h_meas <| (ae_restrict_iff' measurableSet_Iic).mpr <| ae_of_all _ (fun r hr  h_bound r hr)  have h_horiz :      Filter.Tendsto (fun n :   intHSeg l.δ 1 (l.σ n) F) Filter.atTop        (nhds (-intHRay l.δ 1 F)) := by    have h_symm :  n, intHSeg l.δ 1 (l.σ n) F = - intHSeg l.δ (l.σ n) 1 F :=      fun n  by unfold intHSeg; rw [intervalIntegral.integral_symm]    have h_seq_eq : (fun n  intHSeg l.δ 1 (l.σ n) F) = (fun n  - intHSeg l.δ (l.σ n) 1 F) :=      funext fun n  h_symm n    have h_tendsto_ray : Filter.Tendsto (fun n  intHSeg l.δ (l.σ n) 1 F) Filter.atTop (nhds (intHRay l.δ 1 F)) :=      MeasureTheory.intervalIntegral_tendsto_integral_Iic 1 h_int_ray l.hlim    rw [h_seq_eq]    simpa using h_tendsto_ray.neg  have h_vert : Filter.Tendsto (fun n :   intVSeg (l.σ n) l.δ l.T F) Filter.atTop (nhds 0) := by    simpa [F] using intVSeg_tendsto_zero_of_bounded_on_L l G_star x₀ x l.δ l.T hx₀ hx        (by rw [abs_of_nonneg l.hδ.1.le]; linarith [l.hδ.2, l.hT]) le_rfl        (by linarith [l.hδ.1, l.hδ.2, l.hT]) hGs_L  have h_sum : Filter.Tendsto (fun n :   intVSeg 1 0 l.δ F + (intHSeg l.δ 1 (l.σ n) F + intVSeg (l.σ n) l.δ l.T F))        Filter.atTop (nhds (intVSeg 1 0 l.δ F + (-intHRay l.δ 1 F + 0))) :=        Filter.Tendsto.add tendsto_const_nhds (Filter.Tendsto.add h_horiz h_vert)  simpa [LadderParams.intCn1Plus, LadderParams.intC, F, sub_eq_add_neg, add_assoc] using h_sum