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

forest_union_sum_aux1

Carleson.Discrete.ForestUnion · Carleson/Discrete/ForestUnion.lean:882 to 928

Mathematical statement

Exact Lean statement

lemma forest_union_sum_aux1 (M : ℕ) (q : ℝ) (hq : 1 < q) (h'q : q ≤ 2) :
    ∑ n ≤ M, ∑ _k ≤ n, ∑ _j ≤ 2 * n + 3, ∑ _l < 4 * n + 12,
      (2 : ℝ) ^ (- ((q - 1) / q * n)) ≤ 13009 / (q - 1) ^ 4

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma forest_union_sum_aux1 (M : ) (q : ) (hq : 1 < q) (h'q : q  2) :    ∑ n  M, ∑ _k  n, ∑ _j  2 * n + 3, ∑ _l < 4 * n + 12,      (2 : ) ^ (- ((q - 1) / q * n))  13009 / (q - 1) ^ 4 := by  have A (x : ) : (x + 1) * (2 * x + 3 + 1) * (4 * x + 12)      = 8 * x ^ 3 + 48 * x ^ 2 + 88 * x + 48:= by ring  simp only [Finset.sum_const, Nat.card_Iio, nsmul_eq_mul, Nat.cast_add, Nat.cast_mul,    Nat.cast_ofNat, Nat.card_Iic, Nat.cast_one,  mul_assoc, A, ge_iff_le]  simp only [add_mul, Finset.sum_add_distrib, mul_assoc,  Finset.mul_sum]  have : 0  q - 1 := by linarith  have : q - 1  1 := by linarith  have : 0.6931471803  Real.log 2 := Real.log_two_gt_d9.le  let c := (q - 1) / q  have hc : 0 < c := div_pos (by linarith) (by linarith)  calc  8 * ∑ i  Finset.Iic M, i ^ 3 * (2 : ) ^ (-(c * i))    + 48 * ∑ i  Finset.Iic M, i ^ 2 * (2 : ) ^ (-(c * i))    + 88 * ∑ i  Finset.Iic M, i * (2 : ) ^ (-(c * i))    + 48 * ∑ i  Finset.Iic M, (2 : ) ^ (-(c * i))  _ = 8 * ∑ i  Finset.Iic M, i ^ 3 * (2 : ) ^ (-(c * i))      + 48 * ∑ i  Finset.Iic M, i ^ 2 * (2 : ) ^ (-(c * i))      + 88 * ∑ i  Finset.Iic M, i ^ 1  * (2 : ) ^ (-(c * i))      + 48 * ∑ i  Finset.Iic M, i ^ 0 * (2 : ) ^ (-(c * i)) := by simp  _  8 * (2 ^ c * 3 ! / (Real.log 2 * c) ^ (3 + 1))      + 48 * (2 ^ c * 2 ! / (Real.log 2 * c) ^ (2 + 1))      + 88 * (2 ^ c * 1 ! / (Real.log 2 * c) ^ (1 + 1))      + 48 * (2 ^ c * 0! / (Real.log 2 * c) ^ (0 + 1)) := by    gcongr <;> exact sum_Iic_pow_mul_two_pow_neg_le hc  _ = (2 ^ c * (48 * q ^ 4 / (Real.log 2) ^ 4 + 96 * q^3 * (q - 1) / (Real.log 2) ^ 3      + 88 * q ^ 2 * (q - 1) ^ 2 / (Real.log 2) ^ 2      + 48 * q * (q - 1) ^ 3/ (Real.log 2))) / (q - 1) ^ 4 := by    simp only [Nat.factorial, Nat.succ_eq_add_one, Nat.reduceAdd, zero_add, mul_one, Nat.reduceMul,      Nat.cast_ofNat, mul_pow, div_pow, Nat.cast_one, pow_one, c]    have : q - 1  0 := by linarith    field_simp    ring  _  (2 ^ (1 : ) * (48 * 2 ^ 4 / (Real.log 2) ^ 4 + 96 * 2 ^ 3 * 1 / (Real.log 2) ^ 3      + 88 * 2 ^ 2 * 1 ^ 2 / (Real.log 2) ^ 2 + 48 * 2 * 1 ^ 3 / (Real.log 2))) / (q - 1) ^ 4 := by    gcongr    · exact one_le_two    · rw [div_le_one (by linarith)]      linarith  _  (2 ^ (1 : ) * (48 * 2 ^ 4 / 0.6931471803 ^ 4 + 96 * 2 ^ 3 * 1 / 0.6931471803 ^ 3      + 88 * 2 ^ 2 * 1 ^ 2 / 0.6931471803 ^ 2 + 48 * 2 * 1 ^ 3 / 0.6931471803)) / (q - 1) ^ 4 := by    gcongr  _  13009 / (q - 1) ^ 4 := by    gcongr    norm_num