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

RS_prime.support_pre413

PrimeNumberTheoremAnd.IEANTN.RosserSchoenfeld.RosserSchoenfeldPrime · PrimeNumberTheoremAnd/IEANTN/RosserSchoenfeld/RosserSchoenfeldPrime.lean:213 to 278

Mathematical statement

Exact Lean statement

lemma support_pre413 {f : ℝ → ℝ} {x : ℝ} (hx : 2 ≤ x) :
  (Function.support fun (n: ℕ) ↦ ∫ (x : ℝ) in ↑n..↑n + 1, f x ∂«θ».Stieltjes.measure.restrict (Set.Icc 2 x)) ⊆
    (Finset.Ico 1 ⌊x⌋₊)

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma support_pre413 {f :   } {x : } (hx : 2  x) :  (Function.support fun (n: )  ∫ (x : ) in ↑n..↑n + 1, f x ∂«θ».Stieltjes.measure.restrict (Set.Icc 2 x))     (Finset.Ico 1 ⌊x⌋₊) := by  intro n hn  simp only [Function.mem_support, ne_eq] at hn  rw [intervalIntegral.integral_of_le (by simp),  ne_eq,  abs_pos] at hn  grw [MeasureTheory.abs_integral_le_integral_abs] at hn  rw [MeasureTheory.integral_pos_iff_support_of_nonneg_ae] at hn  · simp only [measurableSet_Ioc, Measure.restrict_restrict, measurableSet_Icc,      MeasurableSet.inter, Measure.restrict_apply'] at hn    by_cases n_eq: n = 0    · simp only [n_eq, CharP.cast_eq_zero, zero_add] at hn      conv at hn =>        pattern _ ∩ _        rhs        equals ∅ => grind      simp at hn    by_contra!    conv at hn =>      rhs      arg 2      rhs      equals (Set.Ioc ↑n x) =>        ext a        simp only [Set.mem_inter_iff, Set.mem_Ioc, Set.mem_Icc]        refine ?_, ?_        · intro ha          refine by grind, ?_          grind        · intro ha          simp only [coe_Ico, Set.mem_Ico, not_and_or] at this          refine ?_, ?_          · refine ?_, ?_            · grind            · cases this              · grind              · rename_i n_le                simp at n_le                grw [ha.2]                grw [Nat.lt_floor_add_one (a := x)]                simpa using n_le          · refine ?_, by grind            have le_x: (2: )  x := by norm_cast            apply Nat.le_floor at le_x            conv =>              lhs              equals ↑(2: ) => simp             simp only [not_le, lt_one_iff, n_eq, not_lt, false_or] at this            grw [le_x, this]            linarith     apply _root_.ne_of_lt at hn    rw [ne_eq, eq_comm] at hn    rw [measure_inter_null_of_null_right] at hn    · simp at hn    · simp only [«θ».Stieltjes, StieltjesFunction.measure_Ioc, ENNReal.ofReal_eq_zero, tsub_le_iff_right, zero_add]      rw [theta_eq_theta_coe_floor]      apply Monotone.imp (by exact theta_mono)      simp only [coe_Ico, Set.mem_Ico, not_and, not_lt] at this      simp [this (by omega)]  · apply Filter.Eventually.of_forall    intro y    simp  · apply MeasureTheory.Integrable.of_integral_ne_zero    grind