Skip to main content
fpvandoorn/carleson
Source indexedlemma · leanprover/lean4:v4.32.0

ceil_log2_le_floor_four_add_log2

Carleson.Discrete.ForestComplement · Carleson/Discrete/ForestComplement.lean:293 to 316

Source documentation

Logarithmic inequality used in the proof of Lemma 5.5.2.

Exact Lean statement

lemma ceil_log2_le_floor_four_add_log2 {l : ℝ} (hl : 2 ≤ l) :
    ⌈Real.logb 2 ((l + 6 / 5) / 5⁻¹)⌉₊ ≤ ⌊4 + Real.logb 2 l⌋₊

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma ceil_log2_le_floor_four_add_log2 {l : } (hl : 2  l) :Real.logb 2 ((l + 6 / 5) / 5⁻¹)⌉₊ 4 + Real.logb 2 l⌋₊ := by  have : 2  Real.logb 2 (l + 6 / 5) + Real.logb 2 5 :=    calc      _  Real.logb 2 (2 ^ (0 : )) + Real.logb 2 (2 ^ (2 : )) :=        add_le_add          (Real.logb_le_logb_of_le one_lt_two (by positivity) (by linarith))          (Real.logb_le_logb_of_le one_lt_two (by positivity) (by norm_num))      _  _ := by simp_rw [Real.logb_rpow zero_lt_two one_lt_two.ne']; norm_num  rw [div_inv_eq_mul, Real.logb_mul (by positivity) (by positivity), Nat.le_floor_iff']  · calc      _  1 + Real.logb 2 (l + 6 / 5) + Real.logb 2 5 := by        rw [add_rotate]; exact (Nat.ceil_lt_add_one (zero_le_two.trans this)).le      _  1 + Real.logb 2 (8 / 5 * l) + Real.logb 2 5 := by        gcongr        · exact one_lt_two        · linarith      _ = _ := by        rw [add_assoc,  Real.logb_mul (by positivity) (by positivity),  mul_rotate,          show (5 : ) * (8 / 5) = 2 ^ 3 by norm_num,          Real.logb_mul (by positivity) (by positivity),  Real.rpow_natCast,          Real.logb_rpow zero_lt_two one_lt_two.ne',  add_assoc]        norm_num  · exact (zero_lt_one.trans_le (Nat.one_le_ceil_iff.mpr (zero_lt_two.trans_le this))).ne'