All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Integer ball cover

integer_ball_cover

Plain-language statement

In the function-distance space used for the real-line Carleson argument, every ball of radius 2R2R' can be covered by at most three balls of radius RR'.

Exact Lean statement

lemma integer_ball_cover {x : ℝ} {R R' : ℝ} {f : WithFunctionDistance x R} :
    CoveredByBalls (ball f (2 * R')) 3 R'

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
lemma integer_ball_cover {x : } {R R' : } {f : WithFunctionDistance x R} :    CoveredByBalls (ball f (2 * R')) 3 R' := by  unfold WithFunctionDistance at f  rw [coveredByBalls_iff]  by_cases! R'pos : 0  R'  · -- trivial case    refine {f}, Finset.card_singleton f ▸ by norm_num, ?_    have hunion : (⋃ x_1  ({f} : Finset (WithFunctionDistance x R)), ball_{x, R} x_1 R') = ball_{x, R} f R' := by      ext y      simp only [Set.mem_iUnion, exists_prop]      constructor      · rintro i, hi, hb; rwa [Finset.mem_singleton.mp hi] at hb      · intro h; exact f, Finset.mem_singleton_self f, h    rw [hunion, Metric.ball_eq_empty.mpr R'pos, Set.subset_empty_iff, Metric.ball_eq_empty]    linarith  by_cases! Rpos : 0  R  · -- trivial case    refine {f}, Finset.card_singleton f ▸ by norm_num, ?_    have hunion : (⋃ x_1  ({f} : Finset (WithFunctionDistance x R)), ball_{x, R} x_1 R') = ball_{x, R} f R' := by      ext y      simp only [Set.mem_iUnion, exists_prop]      constructor      · rintro i, hi, hb; rwa [Finset.mem_singleton.mp hi] at hb      · intro h; exact f, Finset.mem_singleton_self f, h    rw [hunion]    convert Set.subset_univ _    ext g    refine by simp, ?_    simp only [Set.mem_univ, mem_ball, true_implies, dist_integer_linear_eq]    convert! R'pos    simpa using Or.inl Rpos  set m₁ := Int.floor (f - R' / (2 * R)) with m₁def  set! m₂ := f with m₂def  set m₃ := Int.ceil (f + R' / (2 * R)) with m₃def  /- classical is necessary to be able to build a Finset of WithFunctionDistance. -/  classical  set balls : Finset (WithFunctionDistance x R) := {m₁, m₂, m₃} with balls_def  use balls  constructor  · rw [balls_def]    apply Finset.card_le_three  intro φ hφ  unfold WithFunctionDistance at φ  rw [mem_ball, dist_comm] at hφ  /- m₁, m₂, m₃ each correspond to one case. -/  simp only [Set.mem_iUnion, mem_ball, exists_prop]  by_cases! h : φ  f - R' / (2 * R)  · use m₁    constructor    · apply Finset.mem_insert_self    rw [dist_integer_linear_eq]    calc 2 * max R 0 * |↑φ - ↑m₁|      _ = 2 * R * |↑φ - ↑m₁| := by        congr        rw [max_eq_left_iff]        exact Rpos.le      _ = 2 * R * (m₁ - ↑φ) := by        rw [abs_of_nonpos]        on_goal 1 => simp only [neg_sub]        norm_cast        simp only [tsub_le_iff_right, zero_add]        rwa [m₁def, Int.le_floor]      _ = 2 * R * (m₁ - f) + 2 * R * (f - φ) := by ring      _ < - R' + 2 * R' := by        apply add_lt_add_of_le_of_lt        · rw [m₁def]          calc 2 * R * (⌊f - R' / (2 * R)⌋ - f)            _  2 * R * (f - R' / (2 * R) - f) := by              gcongr              apply Int.floor_le            _ = -R' := by              ring_nf              rw [mul_comm, mul_assoc, inv_mul_cancel₀ Rpos.ne.symm, one_mul]        · calc 2 * R * (↑f - ↑φ)            _  2 * R * |↑f - ↑φ| := by              gcongr              apply le_abs_self            _ < 2 * R' := by              convert hφ              rw [dist_integer_linear_eq]              congr              symm              rw [max_eq_left_iff]              exact Rpos.le      _ = R' := by ring  by_cases! h' : φ < f + R' / (2 * R)  · use m₂    constructor    · exact Finset.mem_insert.mpr (Or.inr (Finset.mem_insert_self m₂ _))    rw [m₂def, dist_comm]    rw [dist_integer_linear_eq]    calc 2 * max R 0 * |↑f - ↑φ|      _ = 2 * R * |↑f - ↑φ| := by        congr        rw [max_eq_left_iff]        exact Rpos.le      _ < 2 * R * (R' / (2 * R)) := by        gcongr        rw [abs_sub_lt_iff]        constructor <;> linarith      _ = R' := by field_simp  use m₃  constructor  · apply Finset.mem_insert.mpr; right    apply Finset.mem_insert.mpr; right    exact Finset.mem_singleton.mpr m₃def  rw [dist_integer_linear_eq]  calc 2 * max R 0 * |↑φ - ↑m₃|    _ = 2 * R * (↑φ - ↑m₃) := by      rw [abs_of_nonneg]      · congr        rw [max_eq_left_iff]        exact Rpos.le      simp only [sub_nonneg, Int.cast_le]      rwa [m₃def, Int.ceil_le]    _ = 2 * R *- f) + 2 * R * (f - m₃) := by ring    _ < 2 * R' - R' := by      apply add_lt_add_of_lt_of_le      · calc 2 * R * (↑φ - ↑f)          _  2 * R * |↑φ - ↑f| := by            gcongr            exact le_abs_self _          _ = 2 * R * |↑f - ↑φ| := by            congr 1            exact abs_sub_comm _ _          _ < 2 * R' := by            convert hφ            rw [dist_integer_linear_eq]            congr            symm            rw [max_eq_left_iff]            exact Rpos.le      · rw [m₃def]        calc 2 * R * (f - ⌈f + R' / (2 * R)⌉)          _  2 * R * (f - (f + R' / (2 * R))) := by            gcongr            exact Int.le_ceil _          _ = -R' := by            ring_nf            rw [mul_comm, mul_assoc, inv_mul_cancel₀ Rpos.ne.symm, one_mul]    _ = R' := by ring
Project
Carleson formalization
License
Apache-2.0
Commit
74ef907d6bdb
Source
Carleson/Classical/CarlesonOnTheRealLineBasic.lean:219-359

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

Project-declaredLean 4.32.0

Ae tendsto zero of distribution le

ae_tendsto_zero_of_distribution_le

Plain-language statement

Suppose that, for every error threshold δ>0\delta>0 and every measure tolerance ε>0\varepsilon>0, one can choose N0N_0 so that the set where supN>N0f(x)FN(x)\sup_{N>N_0}\lVert f(x)-F_N(x)\rVert exceeds δ\delta has measure at most ε\varepsilon. Then FN(x)F_N(x) converges to f(x)f(x) for almost every xx.

harmonic analysisFourier analysismeasure theory

Source project: Carleson formalization

Person-level attribution pending.

View proof record
Project-declaredLean 4.32.0

Antichain operator

antichain_operator

Plain-language statement

For an antichain A\mathfrak{A} of pairwise incomparable tiles, and measurable functions ff and gg bounded by the indicators of FF and GG, the pairing of gg with the Carleson sum over A\mathfrak{A} is controlled by the L2L^2 norms of ff and gg and by positive powers of the two tile-density parameters. Concretely, the bound is

C(a,q)dens1(A)(q1)/(8a4)dens2(A)1/q1/2f2g2.C(a,q)\,\mathrm{dens}_1(\mathfrak{A})^{(q-1)/(8a^4)}\,\mathrm{dens}_2(\mathfrak{A})^{1/q-1/2}\,\lVert f\rVert_2\lVert g\rVert_2.

harmonic analysisFourier analysismeasure theory

Source project: Carleson formalization

Person-level attribution pending.

View proof record