Plain-language statement
For a tile , the union of the grid cubes in its level- boundary family has measure at most a constant times the measure of the spatial cube .
Exact Lean statement
lemma boundary_exception {u : π X} :
volume (β i β π (X := X) n u, (i : Set X)) β€ C5_2_9 X n * volume (π u : Set X)Formal artifact
Lean source
lemma boundary_exception {u : π X} : volume (β i β π (X := X) n u, (i : Set X)) β€ C5_2_9 X n * volume (π u : Set X) := by by_cases h_π_n_u_non_empty : Set.Nonempty (π (X := X) n u) Β· set X_u := { x β GridStructure.coeGrid (π u) | Metric.infEDist x (GridStructure.coeGrid (π u))αΆ β€ 12 * (D ^ (π° u - Z * (n + 1) - 1 : β€) : ββ₯0β)} with h_X_u -- 5.2.25 calc volume (β i β π (X := X) n u, (i : Set X)) _ β€ volume X_u := by have i_subset_X_u : β i β π (X := X) n u, GridStructure.coeGrid i β X_u := by intro i β¨β¨i_subset_I_u, _β©, s_i_eq_stuff, I_not_contain_8_ballβ© ipt hipt refine β¨i_subset_I_u hipt, ?_β© rw [show π° u - Z * (n + 1) - 1 = s i by norm_cast; linarith] obtain β¨bpt, hbpt, h_bpt_not_in_I_uβ© : β b β ball (c i) (8 * βD ^ s i), b β β(π u) := not_subset.mp I_not_contain_8_ball -- triangle inequality between ipt, bpt, c i have ipt_bpt_triangle_ineq : dist ipt bpt β€ (12 * D ^ s i : β) := calc dist ipt bpt _ β€ dist ipt (c i) + dist (c i) bpt := dist_triangle ipt (c i) bpt _ β€ 4 * D ^ s i + dist (c i) bpt := by have dist_ipt_c_i_le : dist ipt (c i) < 4 * D ^ s i := by have ipt_in_ball_4 : ipt β ball (c i) (4 * D ^ s i) := Grid_subset_ball hipt simp_all rel [dist_ipt_c_i_le] _ β€ 4 * D ^ s i + dist bpt (c i) := by rw [dist_comm] _ β€ 4 * D ^ s i + 8 * D ^ s i := by have dist_bpt_c_i_le : dist bpt (c i) < 8 * D ^ s i := by simp_all rel [dist_bpt_c_i_le] _ β€ 12 * D ^ s i := by linarith -- show the the triangle inequality implies distance between ipt and (π u)αΆ <= 12 * D ^ s i calc Metric.infEDist ipt (GridStructure.coeGrid (π u))αΆ _ β€ edist ipt bpt := Metric.infEDist_le_edist_of_mem <| Set.mem_compl h_bpt_not_in_I_u _ β€ ENNReal.ofReal (12 * D ^ s i) := by rw [edist_dist] exact ENNReal.ofReal_le_ofReal ipt_bpt_triangle_ineq _ β€ ENNReal.ofNNReal (12 * D ^ s i) := le_of_eq <| congr_arg (ENNReal.ofNNReal) <| NNReal.coe_injective <| by simpa using zpow_nonneg (by simp) (s i) _ β€ 12 * (D ^ (s i : β€) : ββ₯0β) := by push_cast rw [ENNReal.coe_zpow] Β· push_cast rfl Β· simp exact measure_mono (Set.iUnionβ_subset i_subset_X_u) _ β€ 2 * (12 * D ^ (- Z * (n + 1) - 1 : β€) : ββ₯0) ^ ΞΊ * volume (π u : Set X) := by have small_boundary_observation : β i β π (X := X) n u, volume X_u β€ 2 * (12 * D ^ (- Z * (n + 1) - 1 : β€) : ββ₯0) ^ ΞΊ * volume (π u : Set X) := by intro i β¨_, s_i_eq_stuff, _β© -- choose t for small boundary property set t := 12 * (D ^ (- Z * (n + 1) - 1 : β€) : ββ₯0) with ht -- algebra useful in multiple steps of the proof have D_pow_algebra : 12 * (D ^ (- Z * (n + 1) - 1 : β€) : ββ₯0) * (D ^ (π° u : β€) : ββ₯0) = 12 * (D ^ ( π° u - Z * (n + 1) - 1 : β€) : ββ₯0) := by have : 12 * (D ^ (- Z * (n + 1) - 1 : β€) : ββ₯0) * (D ^ (π° u : β€) : ββ₯0) = 12 * (D ^ (- Z * (n + 1) - 1 + π° u : β€) : ββ₯0) := by rw [zpow_addβ (show (D : ββ₯0) β 0 by norm_num) _ _] ring rw [this] rw [show - Z * (n + 1) - 1 + π° u = π° u - Z * (n + 1) - 1 by linarith] -- small boundary property assumption for π u have small_boundary_h : D ^ ((- S - s (π u)) : β€) β€ t := by have one_le_nnreal_D : 1 β€ (D : ββ₯0) := by have h1 : 1 β€ (D : β) := one_le_realD _ assumption_mod_cast have small_boundary_h_intermediate : D ^ (- S : β€) β€ t * D ^ (π° u: β€) := by rw [ht, D_pow_algebra, show π° u - Z * (n + 1) - 1 = s i by rw [β s_i_eq_stuff]; norm_cast; linarith] have bound_i_neg_S : -S β€ s i := (mem_Icc.mp (range_s_subset β¨i, rflβ©)).1 exact le_mul_of_one_le_of_le (by simp) <| zpow_le_zpow_rightβ (one_le_nnreal_D) bound_i_neg_S apply (mul_inv_le_iffβ <| by positivity).mpr at small_boundary_h_intermediate rw [β NNReal.rpow_neg_one] at small_boundary_h_intermediate have : (D ^ (π° u : β€) : ββ₯0) ^ (-1 : β) = (D ^ (π° u * (-1)) : ββ₯0) := by rw [show (D ^ (π° u : β€) : ββ₯0) = (D ^ (π° u : β) : ββ₯0) by norm_cast, β NNReal.rpow_mul] norm_cast rwa [this, mul_neg_one, β zpow_addβ (show (D : ββ₯0) β 0 by norm_num), show π° u = s (π u) from rfl, add_comm, neg_add_eq_sub] at small_boundary_h_intermediate have small_b := GridStructure.small_boundary small_boundary_h have X_u_in_terms_of_t : X_u = { x β GridStructure.coeGrid (π u) | Metric.infEDist x (GridStructure.coeGrid (π u))αΆ β€ ((t * D ^ (s (π u))):ββ₯0β)} := by rw [ht, show s (π u) = π° u from rfl, show (D ^ π° u : ββ₯0β) = (D ^ π° u : ββ₯0) by simp] rw_mod_cast [D_pow_algebra, h_X_u] have : 12 * (D ^ (π° u - (Z * (n + 1) : β€) - 1) : ββ₯0β) = ((12 * (D ^ (π° u - (Z * (n + 1)) - 1) : ββ₯0)) : ββ₯0β) := by simp rw_mod_cast [this] rw [show s (π u) = GridStructure.s (π u) from rfl] at X_u_in_terms_of_t rw [β X_u_in_terms_of_t, measureReal_def, measureReal_def] at small_b rw [β ENNReal.toReal_le_toReal] -- this requires showing everything is finite Β· rw [ENNReal.toReal_mul] have : (2 * (t ^ ΞΊ : ββ₯0β)).toReal = 2 * t ^ ΞΊ := by norm_cast rw [ENNReal.toReal_mul, β ENNReal.toReal_rpow] rfl rwa [this] Β· apply LT.lt.ne rw [h_X_u] apply lt_of_le_of_lt <| volume.mono inter_subset_left simp [volume_coeGrid_lt_top] Β· apply LT.lt.ne have t_k_lt_top : 2 * (t : ββ₯0β) ^ ΞΊ < β€ := by rw [ht] exact WithTop.mul_lt_top (by apply WithTop.coe_lt_top) <| (ENNReal.rpow_lt_top_of_nonneg ΞΊ_nonneg) (lt_top_iff_ne_top.mp (by apply WithTop.coe_lt_top)) exact WithTop.mul_lt_top t_k_lt_top volume_coeGrid_lt_top obtain β¨i, hiβ© := h_π_n_u_non_empty exact small_boundary_observation i hi _ β€ C5_2_9 X n * volume (π u : Set X) := by -- choosing the right k and D have coeff_lt : 2 * (12 * D ^ (-Z * (n + 1) - 1 : β)) ^ ΞΊ β€ (D ^ (1 - ΞΊ * Z * (n + 1)) : ββ₯0) := by have twelve_le_D : 12 β€ D := by apply le_trans (by norm_num) (hundred_lt_D X).le have two_time_twelve_over_D_to_the_k_le_D : 2 * (12 / D) ^ ΞΊ β€ (D : ββ₯0) := by have two_le_D : 2 β€ D := by linarith have : 2 * (12 / D) ^ ΞΊ β€ (2 : ββ₯0) := by apply (MulLECancellable.mul_le_iff_le_one_right ?_).mpr Β· apply NNReal.rpow_le_one Β· apply div_le_one_of_leβ <| by norm_cast simp only [zero_le] Β· apply ΞΊ_nonneg Β· simp [MulLECancellable] exact this.trans <| by norm_cast have two_times_twelve_k_D_minus_k_le_D : 2 * 12 ^ ΞΊ * D ^ (-ΞΊ) β€ (D : ββ₯0) := by rwa [β inv_mul_eq_div, NNReal.mul_rpow, NNReal.inv_rpow, β NNReal.rpow_neg, mul_comm _ (12 ^ ΞΊ), β mul_assoc] at two_time_twelve_over_D_to_the_k_le_D have mul_by_D_to_the_k_Z : 2 * 12 ^ ΞΊ * D ^ (-1*ΞΊ) * D ^ (-1* ΞΊ * Z * (n + 1)) β€ (D : ββ₯0) * D ^ (-ΞΊ * Z * (n + 1)) := by have : 2 * 12 ^ ΞΊ * D ^ (-ΞΊ) * D ^ (-ΞΊ * Z * (n + 1)) β€ (D : ββ₯0) * D ^ (-ΞΊ * Z * (n + 1)) := mul_le_mul_of_nonneg_right two_times_twelve_k_D_minus_k_le_D (by positivity) rwa [β neg_eq_neg_one_mul] have rearrange_exponents : 2 * (12 : ββ₯0) ^ ΞΊ * (D ^ (-(1 : β))) ^ ΞΊ * (D ^ (-(1 : β) * Z * (n + 1)) : ββ₯0) ^ ΞΊ β€ (D : ββ₯0) ^ (1 : β) * D ^ (-ΞΊ * Z * (n + 1)) := by have : (-1* ΞΊ * Z * (n + 1) : β) = (-1 * Z * (n + 1)) * ΞΊ := by ring rw [this, NNReal.rpow_mul, NNReal.rpow_mul] at mul_by_D_to_the_k_Z rwa [NNReal.rpow_one] rwa [mul_assoc, β NNReal.mul_rpow, mul_assoc, β NNReal.mul_rpow, β NNReal.rpow_add (by positivity), β NNReal.rpow_add (by positivity), add_comm, β neg_eq_neg_one_mul, β Ring.sub_eq_add_neg, show 1 + -ΞΊ * Z * (n + 1) = 1 - ΞΊ * Z * (n + 1) by ring] at rearrange_exponents rw [C5_2_9] apply ENNReal.coe_le_coe.mpr at coeff_lt norm_cast have : 12 * (D ^ (-Z * (n + 1) - 1: β€ ) : ββ₯0) β 0 := by simp only [defaultD, Nat.cast_pow, Nat.cast_ofNat, defaultZ, neg_mul, ne_eq, mul_eq_zero, OfNat.ofNat_ne_zero, false_or] positivity rw [β ENNReal.coe_rpow_of_ne_zero (by exact this)] exact_mod_cast mul_le_mul_left coeff_lt (volume (π u : Set X)) Β· have : volume (β i β π (X := X) n u, (i : Set X)) = 0 := by have h1 : volume (β i β π (X := X) n u, (i : Set X)) β€ β' i : π (X := X) n u, volume (i : Set X) := measure_biUnion_le _ (π n u).to_countable _ have h2 : β' i : π (X := X) n u, volume (i : Set X) = 0 := by have : IsEmpty (π (X := X) n u) := by rw [Set.isEmpty_coe_sort] exact Set.not_nonempty_iff_eq_empty.mp h_π_n_u_non_empty exact tsum_empty exact (le_of_le_of_eq h1 h2).antisymm (by simp) simp only [this, zero_le]- Project
- Carleson formalization
- License
- Apache-2.0
- Commit
- 74ef907d6bdb
- Source
- Carleson/Discrete/ExceptionalSet.lean:682-830
Reuse this declaration
Bring the exact result into your workflow
The import identifies the source module. Your project still needs the pinned package dependency shown on this page.
What this badge means
This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.
Continue in this project
Related declarations
Adjoint Carleson adjoint
adjointCarleson_adjoint
Plain-language statement
adjointCarleson is the adjoint of carlesonOn.
Source project: Carleson formalization
Person-level attribution pending.
Ae tendsto zero of distribution le
ae_tendsto_zero_of_distribution_le
Plain-language statement
Suppose that, for every error threshold and every measure tolerance , one can choose so that the set where exceeds has measure at most . Then converges to for almost every .
Source project: Carleson formalization
Person-level attribution pending.
Antichain operator
antichain_operator
Plain-language statement
For an antichain of pairwise incomparable tiles, and measurable functions and bounded by the indicators of and , the pairing of with the Carleson sum over is controlled by the norms of and and by positive powers of the two tile-density parameters. Concretely, the bound is
Source project: Carleson formalization
Person-level attribution pending.