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

CH2.lemma_5_1_b

PrimeNumberTheoremAnd.IEANTN.CH2.CH2 · PrimeNumberTheoremAnd/IEANTN/CH2/CH2.lean:1739 to 1803

Mathematical statement

Exact Lean statement

@[blueprint
  "ch2-lemma-5-1-b"
  (title := "Contour shifting, lower half (CH2 Lemma 5.1, eq. 2)")
  (statement := /--
  For each $n$, shifting the lower half $1 - iT \to 1$ of the central line leftwards to the
  truncated contour $C_n^-$ picks up the residues of $G$ in $\overline{R^+}$ to the right of $\sigma_n$:
  $$ \frac{1}{2\pi i}\int_{1-iT}^{1} G(s) x^s\, ds = \frac{1}{2\pi i}\int_{C_n^-} G(s) x^s\, ds + \sum_{\rho \in \overline{R^+},\ \Re\rho > \sigma_n} \mathrm{Res}_{s=\rho} G(s) x^s. $$ -/)
  (proof := /-- The residue theorem on the region of $\overline{R^+}$ between $[1-iT, 1]$ and $C_n^-$. -/)
  (latexEnv := "sublemma")
  (discussion := 1449)]
theorem lemma_5_1_b (n : ℕ)
    (hG : ∀ s, G s = G_circ s + (Real.sign s.im : ℂ) * G_star s)
    (hG_circ_mero : MeromorphicOn G_circ l.R) (hG_star_mero : MeromorphicOn G_star l.R)
    (hG_circ_symm : ConjSymm G_circ) (hG_star_symm : ConjAntisymm G_star)
    (hx₀ : 1 ≤ x₀)
    (hG_bdd : IsBoundedNoPolesOn (fun s ↦ G s * (x₀ : ℂ) ^ s) l.Rboundary)
    (hGc_L : IsBoundedNoPolesOn (fun s ↦ G_circ s * (x₀ : ℂ) ^ s) l.L)
    (hGc_contour : IsBoundedNoPolesOn (fun s ↦ G_circ s * (x₀ : ℂ) ^ s) l.admissible_contour)
    (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)
    (hx : x₀ < x)
    (hfin : {z ∈ l.R \ l.RC | meromorphicOrderAt (fun s ↦ G s * (x : ℂ) ^ s) z < 0}.Finite)
    (hsimple : HasSimplePolesOn (fun s ↦ G s * (x : ℂ) ^ s) l.R) :
    (2 * (π : ℂ) * Complex.I)⁻¹ * intVSeg 1 (-l.T) 0 (fun s ↦ G s * (x : ℂ) ^ s) =
      (2 * (π : ℂ) * Complex.I)⁻¹ * l.intCnMinus n (fun s ↦ G s * (x : ℂ) ^ s) +
      sumResiduesIn (fun s ↦ G s * (x : ℂ) ^ s) (l.RposBar ∩ {z | l.σ n < z.re})

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
@[blueprint  "ch2-lemma-5-1-b"  (title := "Contour shifting, lower half (CH2 Lemma 5.1, eq. 2)")  (statement := /--  For each $n$, shifting the lower half $1 - iT \to 1$ of the central line leftwards to the  truncated contour $C_n^-$ picks up the residues of $G$ in $\overline{R^+}$ to the right of $\sigma_n$:  $$ \frac{1}{2\pi i}\int_{1-iT}^{1} G(s) x^s\, ds = \frac{1}{2\pi i}\int_{C_n^-} G(s) x^s\, ds + \sum_{\rho \in \overline{R^+},\ \Re\rho > \sigma_n} \mathrm{Res}_{s=\rho} G(s) x^s. $$ -/)  (proof := /-- The residue theorem on the region of $\overline{R^+}$ between $[1-iT, 1]$ and $C_n^-$. -/)  (latexEnv := "sublemma")  (discussion := 1449)]theorem lemma_5_1_b (n : )    (hG :  s, G s = G_circ s + (Real.sign s.im : ℂ) * G_star s)    (hG_circ_mero : MeromorphicOn G_circ l.R) (hG_star_mero : MeromorphicOn G_star l.R)    (hG_circ_symm : ConjSymm G_circ) (hG_star_symm : ConjAntisymm G_star)    (hx₀ : 1  x₀)    (hG_bdd : IsBoundedNoPolesOn (fun s  G s * (x₀ : ℂ) ^ s) l.Rboundary)    (hGc_L : IsBoundedNoPolesOn (fun s  G_circ s * (x₀ : ℂ) ^ s) l.L)    (hGc_contour : IsBoundedNoPolesOn (fun s  G_circ s * (x₀ : ℂ) ^ s) l.admissible_contour)    (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)    (hx : x₀ < x)    (hfin : {z  l.R \ l.RC | meromorphicOrderAt (fun s  G s * (x : ℂ) ^ s) z < 0}.Finite)    (hsimple : HasSimplePolesOn (fun s  G s * (x : ℂ) ^ s) l.R) :    (2 * (π : ℂ) * Complex.I)⁻¹ * intVSeg 1 (-l.T) 0 (fun s  G s * (x : ℂ) ^ s) =      (2 * (π : ℂ) * Complex.I)⁻¹ * l.intCnMinus n (fun s  G s * (x : ℂ) ^ s) +      sumResiduesIn (fun s  G s * (x : ℂ) ^ s) (l.RposBar ∩ {z | l.σ n < z.re}) := by  have hG_nopoles_lower :  s  l.Rboundary, s.im  0  0  meromorphicOrderAt (G_circ - G_star) s :=    lower_Rboundary_no_poles l hG hG_circ_mero hG_star_mero hx₀ hG_bdd hGc_contour hGs_contour  have h_integrable1 : IntervalIntegrable (fun t :   (G (1 + t * Complex.I) * (x : ℂ) ^ (1 + t * Complex.I)) * Complex.I) volume (-l.T) (-l.δ) :=    G_mul_cpow_integrable_vseg_lower l hG hG_circ_mero hG_star_mero hx₀ hG_nopoles_lower hx (-l.T) (-l.δ) (by linarith [l.hT]) (by linarith [l.hδ.2, l.hT]) (by linarith [l.hδ.1])  have h_integrable2 : IntervalIntegrable (fun t :   (G (1 + t * Complex.I) * (x : ℂ) ^ (1 + t * Complex.I)) * Complex.I) volume (-l.δ) 0 :=    G_mul_cpow_integrable_vseg_lower l hG hG_circ_mero hG_star_mero hx₀ hG_nopoles_lower hx (-l.δ) 0 (by linarith [l.hδ.2, l.hT]) (by linarith [l.hδ.1]) le_rfl  have h_unprimed_eq : intVSeg 1 (-l.T) 0 (fun s  G s * (x : ℂ) ^ s) =    l.intCnMinus n (fun s  G s * (x : ℂ) ^ s) +    RectangleIntegral (fun s  G s * (x : ℂ) ^ s) ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I) :=    intVSeg_eq_intCnMinus_add_rectangleIntegral l n (fun s  G s * (x : ℂ) ^ s) h_integrable1 h_integrable2  have h_int_eq : (2 * (π : ℂ) * Complex.I)⁻¹ * intVSeg 1 (-l.T) 0 (fun s  G s * (x : ℂ) ^ s) =    (2 * (π : ℂ) * Complex.I)⁻¹ * l.intCnMinus n (fun s  G s * (x : ℂ) ^ s) +    RectangleIntegral' (fun s  G s * (x : ℂ) ^ s) ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I) := by    rw [h_unprimed_eq, mul_add]    congr 1    simp only [smul_eq_mul]    ring  have h_rect_subset_RposBar :      Rectangle ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I)  l.RposBar :=    l.lowerRectangle_subset_RposBar n  have h_rect_subset_R :      Rectangle ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I)  l.R :=    Set.Subset.trans h_rect_subset_RposBar l.RposBar_subset_R  have h_rect_mero : MeromorphicOn (fun s  G s * (x : ℂ) ^ s)      (Rectangle ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I)) :=    lowerRectangle_meromorphicOn n hG hG_circ_mero hG_star_mero hx₀ hx  have h_no_poles_boundary : Disjoint (RectangleBorder ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I))    {z | meromorphicOrderAt (fun s  G s * (x : ℂ) ^ s) z < 0} :=    lowerRectangle_no_poles_boundary l n hG hG_circ_mero hG_star_mero hG_circ_symm hG_star_symm hx₀ hG_bdd hGc_L hGc_contour hGs_L hGs_contour hx  have h_residue_thm : RectangleIntegral' (fun s  G s * (x : ℂ) ^ s) ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I) =    sumResiduesIn (fun s  G s * (x : ℂ) ^ s) (Rectangle ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I) ∩ {z | meromorphicOrderAt (fun s  G s * (x : ℂ) ^ s) z < 0}) :=    lowerRectangleIntegral'_eq_sumResiduesIn n h_rect_mero h_no_poles_boundary hfin hsimple  have h_residue_set_eq : sumResiduesIn (fun s  G s * (x : ℂ) ^ s) (Rectangle ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I) ∩ {z | meromorphicOrderAt (fun s  G s * (x : ℂ) ^ s) z < 0}) =    sumResiduesIn (fun s  G s * (x : ℂ) ^ s) (l.RposBar ∩ {z | l.σ n < z.re}) :=    sumResiduesIn_lowerRectangle_eq_sumResiduesIn_RposBar l n (fun s  G s * (x : ℂ) ^ s) h_rect_mero h_no_poles_boundary  have h_residue : RectangleIntegral' (fun s  G s * (x : ℂ) ^ s) ((l.σ n : ℂ) - (l.T : ℂ) * Complex.I) (1 - (l.δ : ℂ) * Complex.I) =    sumResiduesIn (fun s  G s * (x : ℂ) ^ s) (l.RposBar ∩ {z | l.σ n < z.re}) := by      rw [h_residue_thm, h_residue_set_eq]  rw [h_int_eq, h_residue]