All proofs
Project-declaredLean 4.29.0-rc6 · mathlib@5c8398df5281

John nirenberg from base

DeGiorgi.john_nirenberg_from_base

Plain-language statement

John-Nirenberg iteration from a base level. This is a variant of john_nirenberg (and john_nirenberg_iteration) where the one-step decay hypothesis h_decay is only assumed for lam ≥ A (instead of for all lam > 0). The exponential decay conclusion holds for all t > 0, with a slightly larger constant prefactor 1/θ² to absorb the base case `...

Exact Lean statement

theorem john_nirenberg_from_base
    {u : E → ℝ} {x₀ : E} {r : ℝ} {A θ : ℝ}
    (_hr : 0 < r) (hu_meas : Measurable u)
    (hA : 0 < A) (hθ_pos : 0 < θ) (hθ_lt : θ < 1)
    (h_decay : ∀ lam : ℝ, A ≤ lam →
      volume ({x ∈ Metric.ball x₀ r |
        ‖u x - ⨍ y in Metric.ball x₀ r, u y ∂volume‖ > lam + A}) ≤
        ENNReal.ofReal θ *
          volume ({x ∈ Metric.ball x₀ r |
            ‖u x - ⨍ y in Metric.ball x₀ r, u y ∂volume‖ > lam}))
    (t : ℝ) (_ht : 0 < t) :
    volume ({x ∈ Metric.ball x₀ r |
      ‖u x - ⨍ y in Metric.ball x₀ r, u y ∂volume‖ > t}) ≤
    ENNReal.ofReal (1 / θ ^ 2) * volume (Metric.ball x₀ r) *
      ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A)))

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem john_nirenberg_from_base    {u : E  } {x₀ : E} {r : } {A θ : }    (_hr : 0 < r) (hu_meas : Measurable u)    (hA : 0 < A) (hθ_pos : 0 < θ) (hθ_lt : θ < 1)    (h_decay :  lam : , A  lam       volume ({x  Metric.ball x₀ r |        ‖u x - ⨍ y in Metric.ball x₀ r, u y ∂volume‖ > lam + A})         ENNReal.ofReal θ *          volume ({x  Metric.ball x₀ r |            ‖u x - ⨍ y in Metric.ball x₀ r, u y ∂volume‖ > lam}))    (t : ) (_ht : 0 < t) :    volume ({x  Metric.ball x₀ r |      ‖u x - ⨍ y in Metric.ball x₀ r, u y ∂volume‖ > t})     ENNReal.ofReal (1 / θ ^ 2) * volume (Metric.ball x₀ r) *      ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A))) := by  -- This is a purely mathematical iteration argument (no CZ covering involved).  -- The proof decomposes t into base + iterated steps, applies h_decay iteratively,  -- and bounds the resulting geometric series by the exponential.  set avg := ⨍ y in Metric.ball x₀ r, u y ∂volume  set B := Metric.ball x₀ r with hB_def  set F :   Set E := fun s => {x  B | ‖u x - avg‖ > s + A} with hF_def  have hB_meas : MeasurableSet B := by    simpa [hB_def] using (measurableSet_ball : MeasurableSet (Metric.ball x₀ r))  have hF_sub :  s, F s  B := by    intro s x hx    exact hx.1  have hF_meas :  s, MeasurableSet (F s) := by    intro s    refine hB_meas.inter ?_    exact measurableSet_lt measurable_const ((hu_meas.sub_const avg).norm)  have hF_anti :  s₁ s₂, s₁  s₂  F s₂  F s₁ := by    intro s₁ s₂ hs x hx    refine hx.1, ?_    have hs' : s₁ + A  s₂ + A := by linarith    exact lt_of_le_of_lt hs' hx.2  have h_decayF :  s : , 0 < s       volume (F (s + A))  ENNReal.ofReal θ * volume (F s) := by    intro s hs    have hsA : A  s + A := by linarith    simpa [F, add_assoc, avg, B] using h_decay (s + A) hsA  have h_iter :=    john_nirenberg_iteration hB_meas      (measure_ball_lt_top (μ := volume) (x := x₀) (r := r)).ne      hF_sub hF_meas hF_anti hA hθ_pos hθ_lt h_decayF  have hAdiv : A * (-Real.log θ / A) = -Real.log θ := by    field_simp [hA.ne']  have hexpA : Real.exp (-A * (-Real.log θ / A)) = θ := by    have hexp_arg : -A * (-Real.log θ / A) = Real.log θ := by      calc        -A * (-Real.log θ / A) = -(A * (-Real.log θ / A)) := by ring        _ = -(-Real.log θ) := by rw [hAdiv]        _ = Real.log θ := by ring    rw [hexp_arg, Real.exp_log hθ_pos]  by_cases htA : A < t  · have hs_pos : 0 < t - A := by linarith    have hmain :        volume ({x  Metric.ball x₀ r | ‖u x - avg‖ > t})           ENNReal.ofReal (1 / θ) * volume (Metric.ball x₀ r) *            ENNReal.ofReal (Real.exp (-(t - A) * (-Real.log θ / A))) := by      simpa [F, hB_def, avg, sub_eq_add_neg, add_assoc, add_left_comm, add_comm] using        h_iter (t - A) hs_pos    have hexp_shift :        Real.exp (-(t - A) * (-Real.log θ / A)) =          (1 / θ) * Real.exp (-t * (-Real.log θ / A)) := by      have h_inv : (1 / θ : ) = Real.exp (-Real.log θ) := by        rw [Real.exp_neg, Real.exp_log hθ_pos, one_div]      rw [h_inv,  Real.exp_add]      congr 1      calc        -(t - A) * (-Real.log θ / A)            = -t * (-Real.log θ / A) + A * (-Real.log θ / A) := by ring        _ = -t * (-Real.log θ / A) + (-Real.log θ) := by rw [hAdiv]        _ = -Real.log θ + -t * (-Real.log θ / A) := by ring    calc      volume ({x  Metric.ball x₀ r | ‖u x - avg‖ > t})           ENNReal.ofReal (1 / θ) * volume (Metric.ball x₀ r) *              ENNReal.ofReal (Real.exp (-(t - A) * (-Real.log θ / A))) := hmain      _ = ENNReal.ofReal (1 / θ ^ 2) * volume (Metric.ball x₀ r) *            ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A))) := by        rw [hexp_shift, ENNReal.ofReal_mul (by positivity)]        calc          ENNReal.ofReal (1 / θ) * volume (Metric.ball x₀ r) *              (ENNReal.ofReal (1 / θ) * ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A))))              =              (ENNReal.ofReal (1 / θ) * ENNReal.ofReal (1 / θ)) * volume (Metric.ball x₀ r) *                ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A))) := by                ring          _ = ENNReal.ofReal ((1 / θ) * (1 / θ)) * volume (Metric.ball x₀ r) *                ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A))) := by                rw [ ENNReal.ofReal_mul (by positivity)]          _ = ENNReal.ofReal (1 / θ ^ 2) * volume (Metric.ball x₀ r) *                ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A))) := by                congr 1                field_simp [pow_two, hθ_pos.ne']  · have ht_le_A : t  A := le_of_not_gt htA    have hsub :        {x  Metric.ball x₀ r | ‖u x - avg‖ > t}  Metric.ball x₀ r := by      intro x hx      exact hx.1    have hrate_pos : 0 < -Real.log θ / A := by      have hlog_neg : Real.log θ < 0 := Real.log_neg hθ_pos hθ_lt      exact div_pos (by linarith) hA    have hexp_lower : θ  Real.exp (-t * (-Real.log θ / A)) := by      have hArg : -A * (-Real.log θ / A)  -t * (-Real.log θ / A) := by        nlinarith [ht_le_A, le_of_lt hrate_pos]      calc        θ = Real.exp (-A * (-Real.log θ / A)) := by rw [hexpA]        _  Real.exp (-t * (-Real.log θ / A)) := Real.exp_le_exp.2 hArg    have hmul : 1  (1 / θ ^ 2) * θ := by      have hθ_ne : θ  0 := hθ_pos.ne'      rw [pow_two]      field_simp [hθ_ne]      linarith    have hcoeff : 1  (1 / θ ^ 2) * Real.exp (-t * (-Real.log θ / A)) := by      calc        1  (1 / θ ^ 2) * θ := hmul        _  (1 / θ ^ 2) * Real.exp (-t * (-Real.log θ / A)) := by            gcongr    calc      volume ({x  Metric.ball x₀ r | ‖u x - avg‖ > t})           volume (Metric.ball x₀ r) := measure_mono hsub      _ = ENNReal.ofReal 1 * volume (Metric.ball x₀ r) := by simp      _  ENNReal.ofReal ((1 / θ ^ 2) * Real.exp (-t * (-Real.log θ / A))) *            volume (Metric.ball x₀ r) := by            have hcoeff' :                ENNReal.ofReal (1 : )                   ENNReal.ofReal ((1 / θ ^ 2) * Real.exp (-t * (-Real.log θ / A))) :=              ENNReal.ofReal_le_ofReal hcoeff            exact mul_le_mul_of_nonneg_right hcoeff' (by positivity)      _ = ENNReal.ofReal (1 / θ ^ 2) * volume (Metric.ball x₀ r) *            ENNReal.ofReal (Real.exp (-t * (-Real.log θ / A))) := by            rw [ENNReal.ofReal_mul (by positivity)]            ring
Project
DeGiorgi
License
Apache-2.0
Commit
4c1b3077d378
Source
DeGiorgi/Oscillation/LocalJohnNirenberg.lean:815-947

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.29.0-rc6

Ae eq of tendsto e Lp Norm sub

BareFunction.ae_eq_of_tendsto_eLpNorm_sub

Plain-language statement

Lp limit uniqueness: if f_n → g₁ and f_n → g₂ in eLpNorm, then g₁ =ᵐ g₂.

partial differential equationsregularity theoryanalysis

Source project: DeGiorgi

Person-level attribution pending.

View proof record
Project-declaredLean 4.29.0-rc6

E Lp Norm pi le sum component

BareFunction.eLpNorm_pi_le_sum_component

Plain-language statement

Vector eLpNorm ≤ sum of component eLpNorms for Pi-valued functions. Uses eLpNorm_mono_real for the pointwise bound together with eLpNorm_sum_le for ℝ-valued functions, avoiding Pi instance synthesis.

partial differential equationsregularity theoryanalysis

Source project: DeGiorgi

Person-level attribution pending.

View proof record
Project-declaredLean 4.29.0-rc6

Mem Lp of tendsto e Lp Norm

BareFunction.memLp_of_tendsto_eLpNorm

Plain-language statement

If f n → g in eLpNorm and each f n ∈ Lp, then g ∈ Lp, provided g is AEStronglyMeasurable. Avoids the Lp type entirely. The key observation: eLpNorm (f n - g) → 0 means eLpNorm (f N - g) < 1 for some N. Then eLpNorm g ≤ eLpNorm (f N - g) + eLpNorm (f N) < ∞.

partial differential equationsregularity theoryanalysis

Source project: DeGiorgi

Person-level attribution pending.

View proof record