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

FKS2.coverFrom

PrimeNumberTheoremAnd.IEANTN.FKS2Cor23 · PrimeNumberTheoremAnd/IEANTN/FKS2Cor23.lean:154 to 175

Source documentation

Any s ∈ [lo, lo + n·0.05) lands in some slab of slabsFrom lo n.

Exact Lean statement

theorem coverFrom (lo : ℚ) (n : ℕ) (s : ℝ)
    (hlo : (lo:ℝ) ≤ s) (hhi : s < (lo:ℝ) + (n:ℝ) * 0.05) :
    ∃ I ∈ slabsFrom lo n, s ∈ Set.Icc (I.lo : ℝ) I.hi

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
theorem coverFrom (lo : ) (n : ) (s : )    (hlo : (lo:)  s) (hhi : s < (lo:) + (n:) * 0.05) :     I  slabsFrom lo n, s  Set.Icc (I.lo : ) I.hi := by  set k :  := ⌊(s - (lo:)) / 0.05⌋₊ with hk_def  have hsub_nn : (0:)  (s - (lo:)) / 0.05 := by apply div_nonneg <;> linarith  have hk_lt : k < n := by    have hub : (s - (lo:)) / 0.05 < n := by rw [div_lt_iff₀ (by norm_num)]; linarith    rw [hk_def]; exact Nat.floor_lt hsub_nn |>.mpr (by exact_mod_cast hub)  refine ⟨⟨lo + (k:)*50/1000, lo + ((k:)+1)*50/1000, by    have hknn : (0:)  (k:) := by exact_mod_cast Nat.zero_le k    linarith, ?_, ?_  · rw [slabsFrom, List.mem_map]    exact k, List.mem_range.mpr hk_lt, rfl  · have hfloor_le : (k : )  (s - (lo:)) / 0.05 := by      have := Nat.floor_le hsub_nn; rwa [ hk_def] at this    have hlt_floor : (s - (lo:)) / 0.05 < (k : ) + 1 := by      have := Nat.lt_floor_add_one ((s - (lo:)) / 0.05); rwa [ hk_def] at this    rw [le_div_iff₀ (by norm_num)] at hfloor_le    rw [div_lt_iff₀ (by norm_num)] at hlt_floor    constructor    · push_cast; linarith [hfloor_le]    · push_cast; linarith [hlt_floor]