All proofs
Project-declaredLean 4.32.0 · mathlib@81a5d257c8e4

Lebesgue differentiation

lebesgue_differentiation

Plain-language statement

For every bounded, finitely supported function ff, almost every point xx admits a sequence of balls B(ci,ri)B(c_i,r_i) that all contain xx, whose radii tend to 00 from above, and whose averages converge to f(x)f(x):

\dashintB(ci,ri)f(y)dyf(x).\dashint_{B(c_i,r_i)} f(y)\,dy\longrightarrow f(x).

Exact Lean statement

theorem lebesgue_differentiation {f : X → ℂ} (hf : BoundedFiniteSupport f) :
    ∀ᵐ x ∂volume, ∃ (c : ℕ → X) (r : ℕ → ℝ),
    Tendsto (fun i ↦ ⨍ y in ball (c i) (r i), f y ∂volume) atTop (𝓝 (f x)) ∧
    Tendsto r atTop (𝓝[>] 0) ∧
    ∀ i, x ∈ ball (c i) (r i)

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem lebesgue_differentiation {f : X  ℂ} (hf : BoundedFiniteSupport f) :    ᵐ x ∂volume,  (c :   X) (r :   ),    Tendsto (fun i  ⨍ y in ball (c i) (r i), f y ∂volume) atTop (𝓝 (f x))     Tendsto r atTop (𝓝[>] 0)      i, x  ball (c i) (r i) := by  -- By the Vitali covering theorem, the conclusion of the theorem is true for closed balls.  have ineq (x : X) {r : } (hr : r > 0) :      volume (closedBall x (3 * r))  (defaultA a) ^ 2 * volume (closedBall x r) := calc    _  volume (ball x (2 ^ 2 * (0.9 * r))) := measure_mono (closedBall_subset_ball (by linarith))    _  (defaultA a) ^ 2 * volume (ball x (0.9 * r)) := measure_ball_two_le_same_iterate _ _ 2    _  (defaultA a) ^ 2 * volume (closedBall x r) := by      gcongr; exact ball_subset_closedBall.trans <| closedBall_subset_closedBall <| by linarith  let v : VitaliFamily volume := Vitali.vitaliFamily volume _    (fun x  eventually_nhdsWithin_of_forall (s := Ioi 0) (fun r  ineq x) |>.frequently)  refine (v.ae_tendsto_average hf.integrable.locallyIntegrable).mono (fun x hx  ?_)  have tendsto_closedBall : Tendsto (closedBall x) (𝓝[>] 0) (v.filterAt x) := by    rw [v.tendsto_filterAt_iff]    refine eventually_nhdsWithin_iff.mpr (Eventually.of_forall fun r hr  ?_), fun ε hε  ?_    · exact isClosed_closedBall, x, mem_interior.mpr ball x r, ball_subset_closedBall,        isOpen_ball, mem_ball_self hr⟩⟩, r, by tauto, ineq x hr    · rw [eventually_nhdsWithin_iff, _root_.eventually_nhds_iff]      exact Iio ε, fun y hy _  closedBall_subset_closedBall hy.le, isOpen_Iio, hε⟩⟩  -- We prove a stronger result: we can use any balls centered at x with radii decreasing to 0  have r, _, hr0, hr := exists_seq_strictAnti_tendsto_nhdsWithin (0 : )  refine fun _  x, r, ?_, hr, (mem_ball_self <| hr0 ·)  suffices Tendsto (⨍ y in ball x ·, f y) (𝓝[>] 0) (𝓝 (f x)) from this.comp hr  -- Now we translate the known result about closed balls to the desired result about open balls,  -- by approximating the average over the open ball by an average over a closed ball within it.  refine Metric.tendsto_nhds.mpr (fun ε hε  ?_)  have := Metric.tendsto_nhds.mp (hx.comp tendsto_closedBall) (ε / 2) (half_pos hε)  rw [eventually_nhdsWithin_iff, Metric.eventually_nhds_iff] at this   have δ, δ0, hδ := this  refine δ, δ0, fun r hr hr0  ?_  have ρ, ρ_mono, ρ_lt_r, tendsto_ρ_r := exists_seq_strictMono_tendsto r  let cB (n : ) := closedBall x (ρ n)  suffices ᶠ n in atTop, ρ n > 0  dist (⨍ y in ball x r, f y) (⨍ y in cB n, f y) < ε / 2 by    have n, hn0, hn := this.exists    apply lt_of_le_of_lt <| dist_triangle (⨍ y in ball x r, f y) (⨍ y in cB n, f y) (f x)    rw [ add_halves ε]    refine add_lt_add hn (hδ ?_ hn0)    have r_lt_δ : r < δ := by simpa [abs_eq_self.mpr (mem_Ioi.mp hr0).le] using hr    rw [dist_zero_right, Real.norm_eq_abs, abs_lt]    exact lt_trans (neg_neg_iff_pos.mpr δ0) hn0, lt_trans (ρ_lt_r n) r_lt_δ  apply Eventually.and (tendsto_ρ_r.eventually_const_lt hr0)  -- It remains to confirm that `⨍ y in cB n, f y` estimates `⨍ y in ball x r, f y` for large `n`:  suffices Tendsto (⨍ y in cB ·, f y) atTop (𝓝 (⨍ y in ball x r, f y)) by    have := (continuous_dist.uncurry_left (⨍ y in ball x r, f y)).continuousAt.tendsto.comp this    simpa using Filter.eventually_atTop.mpr (Metric.tendsto_atTop.mp this (ε / 2) (half_pos hε))  -- We first check that `∫ y in cB n, f y` estimates `∫ y in ball x r, f y`:  have hsm (n : ) : MeasurableSet (cB n) := measurableSet_closedBall  have h_mono : Monotone cB := fun m n hmn  closedBall_subset_closedBall (ρ_mono.le_iff_le.mpr hmn)  have := MeasureTheory.tendsto_setIntegral_of_monotone hsm h_mono hf.integrable.integrableOn  have iUnion_cB : ⋃ n, cB n = ball x r := by    refine subset_antisymm (iUnion_subset (closedBall_subset_ball <| ρ_lt_r ·)) (fun y hy  ?_)    have n, hn := (tendsto_ρ_r.eventually_const_lt hy).exists    use closedBall x (ρ n), n, rfl, hn.le  -- Finally, we check that this estimate works for averages as well as integrals.  simp_rw [average, integral_smul_measure]  refine Tendsto.smul ?_ (iUnion_cB ▸ this)  simp only [MeasurableSet.univ, Measure.restrict_apply, univ_inter, toReal_inv]  refine (tendsto_inv₀ ?_).comp ?_  · exact ENNReal.toReal_ne_zero.mpr (measure_ball_pos volume x hr0).ne', measure_ball_ne_top  · apply (ENNReal.tendsto_toReal measure_ball_ne_top).comp    exact iUnion_cB ▸ tendsto_measure_iUnion_atTop h_mono
Project
Carleson formalization
License
Apache-2.0
Commit
74ef907d6bdb
Source
Carleson/TwoSidedCarleson/WeakCalderonZygmund.lean:73-136

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