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

CH2.intCn1Plus_add_intCn1Minus_eq_rectangleIntegral_add_verticalAt

PrimeNumberTheoremAnd.IEANTN.CH2.CH2 · PrimeNumberTheoremAnd/IEANTN/CH2/CH2.lean:1805 to 1845

Mathematical statement

Exact Lean statement

lemma intCn1Plus_add_intCn1Minus_eq_rectangleIntegral_add_verticalAt (l : LadderParams) (n : ℕ) (F : ℂ → ℂ)
    (h_int_σ1 : IntervalIntegrable (fun t : ℝ ↦ F ((l.σ n : ℂ) + t * Complex.I) * Complex.I) volume (-l.T) (-l.δ))
    (h_int_σ2 : IntervalIntegrable (fun t : ℝ ↦ F ((l.σ n : ℂ) + t * Complex.I) * Complex.I) volume (-l.δ) l.δ)
    (h_int_σ3 : IntervalIntegrable (fun t : ℝ ↦ F ((l.σ n : ℂ) + t * Complex.I) * Complex.I) volume l.δ l.T)
    (h_int_11 : IntervalIntegrable (fun t : ℝ ↦ F (1 + t * Complex.I) * Complex.I) volume (-l.δ) 0)
    (h_int_12 : IntervalIntegrable (fun t : ℝ ↦ F (1 + t * Complex.I) * Complex.I) volume 0 l.δ) :
    l.intCn1Plus n F + l.intCn1Minus n F =
    RectangleIntegral F ((l.σ n : ℂ) - (l.δ : ℂ) * Complex.I) (1 + (l.δ : ℂ) * Complex.I) + l.intVerticalAt (l.σ n) F

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma intCn1Plus_add_intCn1Minus_eq_rectangleIntegral_add_verticalAt (l : LadderParams) (n : ) (F : ℂ  ℂ)    (h_int_σ1 : IntervalIntegrable (fun t :   F ((l.σ n : ℂ) + t * Complex.I) * Complex.I) volume (-l.T) (-l.δ))    (h_int_σ2 : IntervalIntegrable (fun t :   F ((l.σ n : ℂ) + t * Complex.I) * Complex.I) volume (-l.δ) l.δ)    (h_int_σ3 : IntervalIntegrable (fun t :   F ((l.σ n : ℂ) + t * Complex.I) * Complex.I) volume l.δ l.T)    (h_int_11 : IntervalIntegrable (fun t :   F (1 + t * Complex.I) * Complex.I) volume (-l.δ) 0)    (h_int_12 : IntervalIntegrable (fun t :   F (1 + t * Complex.I) * Complex.I) volume 0 l.δ) :    l.intCn1Plus n F + l.intCn1Minus n F =    RectangleIntegral F ((l.σ n : ℂ) - (l.δ : ℂ) * Complex.I) (1 + (l.δ : ℂ) * Complex.I) + l.intVerticalAt (l.σ n) F := by  have h1 : l.intCn1Plus n F = intVSeg 1 0 l.δ F + intHSeg l.δ 1 (l.σ n) F + intVSeg (l.σ n) l.δ l.T F := rfl  have h2 : l.intCn1Minus n F = intVSeg (l.σ n) (-l.T) (-l.δ) F + intHSeg (-l.δ) (l.σ n) 1 F + intVSeg 1 (-l.δ) 0 F := rfl  have h3 : RectangleIntegral F ((l.σ n : ℂ) - (l.δ : ℂ) * Complex.I) (1 + (l.δ : ℂ) * Complex.I) = intHSeg (-l.δ) (l.σ n) 1 F - intHSeg l.δ (l.σ n) 1 F + intVSeg 1 (-l.δ) l.δ F - intVSeg (l.σ n) (-l.δ) l.δ F := by    have hH1 : HIntegral F (l.σ n) 1 (-l.δ) = intHSeg (-l.δ) (l.σ n) 1 F := rfl    have hH2 : HIntegral F (l.σ n) 1 l.δ = intHSeg l.δ (l.σ n) 1 F := rfl    have hV1 : Complex.I * ∫ (y : ) in (-l.δ)..l.δ, F (1 + ↑y * Complex.I) =      intVSeg 1 (-l.δ) l.δ F := by      rw [intVSeg,  smul_eq_mul,  intervalIntegral.integral_smul]      refine intervalIntegral.integral_congr (fun y _  ?_)      rw [smul_eq_mul, mul_comm]; rfl    have hV2 : Complex.I * ∫ (y : ) in (-l.δ)..l.δ, F (↑(l.σ n) + ↑y * Complex.I) =      intVSeg (l.σ n) (-l.δ) l.δ F := by      rw [intVSeg,  smul_eq_mul,  intervalIntegral.integral_smul]      refine intervalIntegral.integral_congr (fun y _  ?_)      rw [smul_eq_mul, mul_comm]    rw [RectangleIntegral]    simp only [Complex.sub_re, Complex.add_re, Complex.add_im, Complex.sub_im, Complex.mul_re, Complex.mul_im,      Complex.ofReal_re, Complex.ofReal_im, Complex.I_re, Complex.I_im, Complex.one_re,      Complex.one_im, mul_zero, sub_zero, add_zero, mul_one, zero_add, zero_sub]    dsimp [VIntegral]    rw [hH1, hH2, hV1, hV2]  have h4 : l.intVerticalAt (l.σ n) F = intVSeg (l.σ n) (-l.T) l.T F := rfl  have h5 : intVSeg (l.σ n) (-l.T) (-l.δ) F + intVSeg (l.σ n) (-l.δ) l.δ F + intVSeg (l.σ n) l.δ l.T F = intVSeg (l.σ n) (-l.T) l.T F := by    rw [intVSeg, intVSeg, intVSeg, intVSeg]    rw [intervalIntegral.integral_add_adjacent_intervals h_int_σ1 h_int_σ2]    rw [intervalIntegral.integral_add_adjacent_intervals (IntervalIntegrable.trans h_int_σ1 h_int_σ2) h_int_σ3]  have h6 : intVSeg 1 (-l.δ) 0 F + intVSeg 1 0 l.δ F = intVSeg 1 (-l.δ) l.δ F := by    rw [intVSeg, intVSeg, intVSeg]; push_cast    rw [intervalIntegral.integral_add_adjacent_intervals h_int_11 h_int_12]  have h7 : intHSeg l.δ 1 (l.σ n) F = - intHSeg l.δ (l.σ n) 1 F := by    rw [intHSeg, intHSeg, intervalIntegral.integral_symm]  rw [h1, h2, h3, h4, h7,  h5,  h6]  ring