AlexKontorovich/PrimeNumberTheoremAnd
Source indexedtheorem · leanprover/lean4:v4.32.0
CH2.lemma_5_1_d
PrimeNumberTheoremAnd.IEANTN.CH2.CH2 · PrimeNumberTheoremAnd/IEANTN/CH2/CH2.lean:2212 to 2253
Mathematical statement
Exact Lean statement
@[blueprint
"ch2-lemma-5-1-d"
(title := "$G^\\star$ reflection (CH2 Lemma 5.1, eq. 4)")
(statement := /--
Since $C_{n,1}^-$ is the conjugate of $C_{n,1}^+$ traversed backwards and $G^\star(\bar s) =
-\overline{G^\star(s)}$, the two $G^\star$ contour integrals combine into a single imaginary part:
$$ \int_{C_{n,1}^+} G^\star(s) x^s\, ds - \int_{C_{n,1}^-} G^\star(s) x^s\, ds = 2i\, \Im \int_{C_{n,1}^+} G^\star(s) x^s\, ds. $$ -/)
(proof := /-- For the conjugation-antisymmetric integrand $G^\star x^s$, $\int_{C_{n,1}^-} = \overline{\int_{C_{n,1}^+}}$, and $z - \bar z = 2i\, \Im z$. -/)
(latexEnv := "sublemma")
(discussion := 1451)]
theorem lemma_5_1_d (n : ℕ) (hG_star_symm : ConjAntisymm G_star)
(hx₀ : 1 ≤ x₀) (hx : x₀ < x) :
l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s) -
l.intCn1Minus n (fun s ↦ G_star s * (x : ℂ) ^ s) =
2 * Complex.I * ((l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s)).im : ℂ)Complete declaration
Lean source
Full Lean sourceLean 4
@[blueprint "ch2-lemma-5-1-d" (title := "$G^\\star$ reflection (CH2 Lemma 5.1, eq. 4)") (statement := /-- Since $C_{n,1}^-$ is the conjugate of $C_{n,1}^+$ traversed backwards and $G^\star(\bar s) = -\overline{G^\star(s)}$, the two $G^\star$ contour integrals combine into a single imaginary part: $$ \int_{C_{n,1}^+} G^\star(s) x^s\, ds - \int_{C_{n,1}^-} G^\star(s) x^s\, ds = 2i\, \Im \int_{C_{n,1}^+} G^\star(s) x^s\, ds. $$ -/) (proof := /-- For the conjugation-antisymmetric integrand $G^\star x^s$, $\int_{C_{n,1}^-} = \overline{\int_{C_{n,1}^+}}$, and $z - \bar z = 2i\, \Im z$. -/) (latexEnv := "sublemma") (discussion := 1451)]theorem lemma_5_1_d (n : ℕ) (hG_star_symm : ConjAntisymm G_star) (hx₀ : 1 ≤ x₀) (hx : x₀ < x) : l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s) - l.intCn1Minus n (fun s ↦ G_star s * (x : ℂ) ^ s) = 2 * Complex.I * ((l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s)).im : ℂ) := by have hF : ∀ s, starRingEnd ℂ (G_star s * (x : ℂ) ^ s) = - (G_star (starRingEnd ℂ s) * (x : ℂ) ^ (starRingEnd ℂ s)) := by intro s rw [map_mul] have h_x_symm : starRingEnd ℂ ((x:ℂ)^s) = (x:ℂ)^(starRingEnd ℂ s) := by have hx_pos : 0 ≤ x := by linarith [hx₀, hx] have harg : (x : ℂ).arg ≠ Real.pi := by rw [Complex.arg_ofReal_of_nonneg hx_pos] exact Real.pi_ne_zero.symm have h1 := Complex.cpow_conj (x : ℂ) s harg rw [h1, conj_ofReal] rw [h_x_symm] have hG_symm := hG_star_symm s rw [hG_symm] ring have h_plus_minus : starRingEnd ℂ (l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s)) = l.intCn1Minus n (fun s ↦ G_star s * (x : ℂ) ^ s) := by unfold LadderParams.intCn1Plus LadderParams.intCn1Minus rw [map_add, map_add] have h1 := conj_intHSeg_of_antisymm l.δ 1 (l.σ n) (fun s ↦ G_star s * (x : ℂ) ^ s) hF have h2 := conj_intVSeg_of_antisymm 1 0 l.δ (fun s ↦ G_star s * (x : ℂ) ^ s) hF have h3 := conj_intVSeg_of_antisymm (l.σ n) l.δ l.T (fun s ↦ G_star s * (x : ℂ) ^ s) hF rw [h1, h2, h3] ring_nf have h_sub : l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s) - l.intCn1Minus n (fun s ↦ G_star s * (x : ℂ) ^ s) = l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s) - starRingEnd ℂ (l.intCn1Plus n (fun s ↦ G_star s * (x : ℂ) ^ s)) := by rw [h_plus_minus] rw [h_sub, Complex.sub_conj] simp; ring_nf