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

intervalIntegral_sinc_tail_eq_ibp

PrimeNumberTheoremAnd.LaplaceInversion · PrimeNumberTheoremAnd/LaplaceInversion.lean:1278 to 1320

Source documentation

Integration by parts for the positive sinc tail on a finite interval.

Exact Lean statement

theorem intervalIntegral_sinc_tail_eq_ibp {a b : ℝ} (ha : 0 < a) (hab : a ≤ b) :
    ∫ x in a..b, Real.sinc x =
      (-Real.cos b / b + Real.cos a / a) -
        ∫ x in a..b, Real.cos x / x ^ 2

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem intervalIntegral_sinc_tail_eq_ibp {a b : } (ha : 0 < a) (hab : a  b) :    ∫ x in a..b, Real.sinc x =      (-Real.cos b / b + Real.cos a / a) -        ∫ x in a..b, Real.cos x / x ^ 2 := by  have hpos_uIcc :  x  Set.uIcc a b, 0 < x := by    intro x hx    rw [Set.uIcc_of_le hab] at hx    exact ha.trans_le hx.1  have hsinc :      (∫ x in a..b, Real.sinc x) = ∫ x in a..b, x⁻¹ * Real.sin x := by    refine intervalIntegral.integral_congr ?_    intro x hx    have hx0 : x  0 := (hpos_uIcc x hx).ne'    rw [Real.sinc_of_ne_zero hx0]    ring  have hu :  x  Set.uIcc a b,      HasDerivAt (fun y :  => y⁻¹) (-(x ^ 2)⁻¹) x := by    intro x hx    exact hasDerivAt_inv (hpos_uIcc x hx).ne'  have hv :  x  Set.uIcc a b,      HasDerivAt (fun y :  => -Real.cos y) (Real.sin x) x := by    intro x _hx    have h : HasDerivAt (fun y :  => -Real.cos y) (-(-Real.sin x)) x :=      (Real.hasDerivAt_cos x).neg    rwa [neg_neg] at h  have hu' : IntervalIntegrable (fun x :  => -(x ^ 2)⁻¹) volume a b := by    apply ContinuousOn.intervalIntegrable_of_Icc hab    exact ((continuousOn_pow 2).inv₀ fun x hx => by      exact pow_ne_zero 2 (hpos_uIcc x (by simpa [Set.uIcc_of_le hab] using hx)).ne').neg  have hv' : IntervalIntegrable (fun x :  => Real.sin x) volume a b :=    Real.continuous_sin.intervalIntegrable a b  have hIBP := intervalIntegral.integral_mul_deriv_eq_deriv_mul    (u := fun x :  => x⁻¹) (v := fun x :  => -Real.cos x)    (u' := fun x :  => -(x ^ 2)⁻¹) (v' := fun x :  => Real.sin x)    hu hv hu' hv'  have hint :      (∫ x in a..b, (-(x ^ 2)⁻¹) * -Real.cos x) =        ∫ x in a..b, Real.cos x / x ^ 2 := by    apply intervalIntegral.integral_congr    intro x _hx    field_simp [sq]  rw [hsinc, hIBP, hint]  ring_nf