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

wiener_ikehara_smooth_sub

PrimeNumberTheoremAnd.Wiener · PrimeNumberTheoremAnd/Wiener.lean:1900 to 1940

Mathematical statement

Exact Lean statement

theorem wiener_ikehara_smooth_sub (h1 : Integrable Ψ)
    (hplus : closure (Function.support Ψ) ⊆ Ioi 0) :
    Tendsto (fun x ↦ (↑A * ∫ (y : ℝ) in Ioi x⁻¹, Ψ y) - ↑A * ∫ (y : ℝ) in Ioi 0, Ψ y)
      atTop (𝓝 0)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem wiener_ikehara_smooth_sub (h1 : Integrable Ψ)    (hplus : closure (Function.support Ψ)  Ioi 0) :    Tendsto (fun x  (↑A * ∫ (y : ) in Ioi x⁻¹, Ψ y) - ↑A * ∫ (y : ) in Ioi 0, Ψ y)      atTop (𝓝 0) := by   obtain ε, hε, hh := Metric.eventually_nhds_iff.mp <| comp_exp_support0 hplus  apply tendsto_nhds_of_eventually_eq ; filter_upwards [eventually_gt_atTop ε⁻¹] with x hxε   have l1 : Integrable (indicator (Ioi x⁻¹) (fun x :  => Ψ x)) := h1.indicator measurableSet_Ioi  have l2 : Integrable (indicator (Ioi 0) (fun x :  => Ψ x)) := h1.indicator measurableSet_Ioi   simp_rw [ MeasureTheory.integral_indicator measurableSet_Ioi,  mul_sub,  integral_sub l1 l2]  simp only [mul_eq_zero, ofReal_eq_zero]  right  apply MeasureTheory.integral_eq_zero_of_ae  apply Eventually.of_forall  intro t  simp only [Pi.zero_apply]   have hε' : 0 < ε⁻¹ := by positivity  have hx : 0 < x := by linarith  have hx' : 0 < x⁻¹ := by positivity  have hεx : x⁻¹ < ε := (inv_lt_comm₀ hε hx).mp hxε   have l3 : Ioi 0 = Ioc 0 x⁻¹ ∪ Ioi x⁻¹ := by    ext t ; simp only [mem_Ioi, mem_union, mem_Ioc] ; constructor <;> intro h    · simp [h, le_or_gt]    · cases h with      | inl h => exact h.1      | inr h => exact hx'.trans h  have l4 : Disjoint (Ioc 0 x⁻¹) (Ioi x⁻¹) := by simp  have l5 := Set.indicator_union_of_disjoint l4 Ψ  rw [l3, l5]  simp only  rw [add_comm, sub_add_cancel_left]  by_cases ht : t  Ioc 0 x⁻¹  · simp only [ht, indicator_of_mem, neg_eq_zero]    apply hh ; simp only [mem_Ioc, dist_zero_right, norm_eq_abs] at ht     apply hεx.trans_le'    rw [abs_le] ; constructor <;> linarith  simp [ht]