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

tree_count

Carleson.Discrete.ExceptionalSet Β· Carleson/Discrete/ExceptionalSet.lean:660 to 679

Source documentation

Lemma 5.2.8

Exact Lean statement

lemma tree_count :
    stackSize (π”˜β‚ k n j) x ≀ (2 : ℝ) ^ (9 * a - j : β„€) * stackSize (𝔐 k n) x

Complete declaration

Lean source

Canonical source
Full Lean sourceLean 4
lemma tree_count :    stackSize (π”˜β‚ k n j) x ≀ (2 : ℝ) ^ (9 * a - j : β„€) * stackSize (𝔐 k n) x := by  classical  -- When calculating the LHS, we need only sum over those `u` for which `x ∈ π“˜ u`.  have : βˆ‘ u ∈ univ.filter (Β· ∈ π”˜β‚ (X := X) k n j), (π“˜ u : Set X).indicator (1 : X β†’ ℝ) x =      βˆ‘ u ∈ (π”˜β‚ k n j).toFinset.filter (x ∈ π“˜ Β·), (π“˜ u : Set X).indicator (1 : X β†’ ℝ) x := by    rw [filter_mem_univ_eq_toFinset (π”˜β‚ k n j), sum_filter]    exact sum_congr rfl <|      fun u _ ↦ by simp [Membership.mem]  rw [stackSize_real, this]  -- Use inequality (5.2.20) to bound the LHS by a double sum, then interchange the sums.  apply le_trans (sum_le_sum indicator_le)  simp_rw [← mul_sum, stackSize_real, mem_coe, filter_univ_mem, interchange, sum_const]  let _ : PosMulReflectLE ℝ := inferInstance -- perf: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/performance.20example.20with.20type-class.20inference  -- Replace the cardinality of `π”˜` with the upper bound proven in `card_π”˜m_le`, and simplify.  apply le_of_le_of_eq <| (mul_le_mul_iff_rightβ‚€ (zpow_pos two_pos _)).mpr <| sum_le_sum <|    fun _ _ ↦ smul_le_smul_of_nonneg_right card_π”˜m_le <| Set.indicator_apply_nonneg (by simp)  simp_rw [← smul_sum, nsmul_eq_mul, ← mul_assoc, filter_mem_univ_eq_toFinset (𝔐 k n), defaultA]  rw [sub_eq_add_neg, zpow_addβ‚€ two_ne_zero, ← pow_mul, mul_comm 9, mul_comm (2 ^ _)]  norm_cast