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

Weak harnack stage one inverse

DeGiorgi.weak_harnack_stage_one_inverse

Plain-language statement

First stage of weak Harnack: inverse-power iteration for positive supersolutions. For u > 0 a supersolution on B₁ and every p₀ > 0: (Λ p₀² + 1)^{-d/2} · (∫_{B₁} |u⁻¹|^{p₀})⁻¹ ≤ C · (inf_{B_{1/2}} u)^{p₀} Proof: the Moser iteration (Steps 1-2 above) gives an a.e. L^∞ bound on u⁻¹ over B_{1/2}. Since u > 0 pointwise, this converts to a...

Exact Lean statement

theorem weak_harnack_stage_one_inverse
    (hd : 2 < (d : ℝ))
    (A : NormalizedEllipticCoeff d (Metric.ball (0 : E) 1))
    {u : E → ℝ} {p₀ : ℝ} (hp₀ : 0 < p₀)
    (hu_pos : ∀ x ∈ Metric.ball (0 : E) 1, 0 < u x)
    (hsuper : IsSupersolution A.1 u) :
    (A.1.Λ * p₀ ^ 2 + 1) ^ (-(d : ℝ) / 2) *
        (∫ x in Metric.ball (0 : E) 1, |(u x)⁻¹| ^ p₀ ∂volume)⁻¹ ≤
      C_weakHarnack0 d *
        (essInf u μhalf) ^ p₀

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem weak_harnack_stage_one_inverse    (hd : 2 < (d : ))    (A : NormalizedEllipticCoeff d (Metric.ball (0 : E) 1))    {u : E  } {p₀ : } (hp₀ : 0 < p₀)    (hu_pos :  x  Metric.ball (0 : E) 1, 0 < u x)    (hsuper : IsSupersolution A.1 u) :    (A.1* p₀ ^ 2 + 1) ^ (-(d : ) / 2) *        (∫ x in Metric.ball (0 : E) 1, |(u x)⁻¹| ^ p₀ ∂volume)⁻¹       C_weakHarnack0 d *        (essInf u μhalf) ^ p₀ := by  let I :  := ∫ x in Metric.ball (0 : E) 1, |(u x)⁻¹| ^ p₀ ∂volume  let L :  := A.1* p₀ ^ 2 + 1  have hC_nonneg : 0  C_weakHarnack0 d := by    exact le_trans (by norm_num : (0 : )  1) (one_le_C_weakHarnack0 (d := d))  have hL_pos : 0 < L := by    dsimp [L]    nlinarith [A.1.Λ_nonneg, sq_nonneg p₀]  have hL_nonneg : 0  L := hL_pos.le  have hhalf_nonneg : ᵐ x ∂μhalf, 0  u x := by    filter_upwards [ae_restrict_mem measurableSet_ball] with x hx    exact (hu_pos x ((Metric.ball_subset_ball (by norm_num : (1 / 2 : )  1)) hx)).le  have hessInf_nonneg : 0  essInf u μhalf := by    exact      le_essInf_real_of_ae_le        (d := d)        (restrict_ball_ne_zero (c := (0 : E)) (r := (1 / 2 : )) (by norm_num))        hhalf_nonneg  by_cases hpInt : IntegrableOn (fun x => |(u x)⁻¹| ^ p₀) (Metric.ball (0 : E) 1) volume  · let c0 :  := C_weakHarnack0 d * L ^ ((d : ) / 2) * I    have hI_nonneg : 0  I := by      dsimp [I]      exact integral_nonneg fun x => by positivity    have hI_pos : 0 < I := by      have hnonneg :          0 ᵐ[volume.restrict (Metric.ball (0 : E) 1)] fun x => |(u x)⁻¹| ^ p₀ := by        filter_upwards [ae_restrict_mem measurableSet_ball] with x hx        positivity      have hI_ne_zero : I  0 := by        intro hI_zero        have hzero_ae :            (fun x => |(u x)⁻¹| ^ p₀) =ᵐ[volume.restrict (Metric.ball (0 : E) 1)] 0 := by          rw [ sub_eq_zero] at hI_zero          rwa [sub_zero, setIntegral_eq_zero_iff_of_nonneg_ae hnonneg hpInt] at hI_zero        have hpos_ae :            ᵐ x ∂(volume.restrict (Metric.ball (0 : E) 1)), |(u x)⁻¹| ^ p₀  0 := by          filter_upwards [ae_restrict_mem measurableSet_ball] with x hx          have hux_pos : 0 < u x := hu_pos x hx          have hpow_pos : 0 < |(u x)⁻¹| ^ p₀ := by            rw [abs_of_pos (inv_pos.mpr hux_pos)]            exact Real.rpow_pos_of_pos (inv_pos.mpr hux_pos) p₀          exact hpow_pos.ne'        have hfalse : ᵐ x ∂(volume.restrict (Metric.ball (0 : E) 1)), False := by          filter_upwards [hzero_ae, hpos_ae] with x hx0 hxpos          exact hxpos hx0        rw [ae_iff] at hfalse        have hball_zero : volume (Metric.ball (0 : E) 1) = 0 := by          simpa [Measure.restrict_apply_univ] using hfalse        exact (Metric.measure_ball_pos volume (0 : E) (by norm_num : (0 : ) < 1)).ne'          hball_zero      exact lt_of_le_of_ne hI_nonneg (Ne.symm hI_ne_zero)    have hc0_pos : 0 < c0 := by      dsimp [c0]      exact mul_pos (mul_pos (lt_of_lt_of_le zero_lt_one (one_le_C_weakHarnack0 (d := d)))        (Real.rpow_pos_of_pos hL_pos _)) hI_pos    have hc0_nonneg : 0  c0 := hc0_pos.le    have hclose := supersolution_ae_closeout_inv (d := d) hd A hp₀ hu_pos hsuper hpInt    have hroot_ae :        ᵐ x ∂μhalf, (c0⁻¹) ^ (1 / p₀)  u x := by      filter_upwards [hclose, ae_restrict_mem measurableSet_ball] with x hxclose hxhalf      have hux_pos : 0 < u x := hu_pos x ((Metric.ball_subset_ball (by norm_num : (1 / 2 : )  1)) hxhalf)      have hupow_pos : 0 < u x ^ p₀ := Real.rpow_pos_of_pos hux_pos p₀      have hpow_inv : (u x ^ p₀)⁻¹  c0 := by        calc          (u x ^ p₀)⁻¹ = ((u x)⁻¹) ^ p₀ := by            rw [Real.inv_rpow hux_pos.le]          _ = |(u x)⁻¹| ^ p₀ := by            rw [abs_of_pos (inv_pos.mpr hux_pos)]          _  c0 := hxclose      have hpow_lower : c0⁻¹  u x ^ p₀ := by        have htmp :            c0⁻¹  ((u x ^ p₀)⁻¹)⁻¹ := (inv_le_inv₀ hc0_pos (inv_pos.mpr hupow_pos)).2 hpow_inv        simpa [hupow_pos.ne'] using htmp      have hroot :=        Real.rpow_le_rpow (inv_nonneg.mpr hc0_nonneg) hpow_lower (by positivity : 0  1 / p₀)      have hux_root : (u x ^ p₀) ^ (1 / p₀) = u x := by        rw [ Real.rpow_mul hux_pos.le]        field_simp [hp₀.ne']        rw [Real.rpow_one]      calc        (c0⁻¹) ^ (1 / p₀)  (u x ^ p₀) ^ (1 / p₀) := hroot        _ = u x := hux_root    have hc_le_ess : (c0⁻¹) ^ (1 / p₀)  essInf u μhalf := by      exact        le_essInf_real_of_ae_le          (d := d)          (restrict_ball_ne_zero (c := (0 : E)) (r := (1 / 2 : )) (by norm_num))          hroot_ae    have hpow_ess :        c0⁻¹  (essInf u μhalf) ^ p₀ := by      have hpow :=        Real.rpow_le_rpow          (Real.rpow_nonneg (inv_nonneg.mpr hc0_nonneg) _)          hc_le_ess hp₀.le      have hleft : ((c0⁻¹) ^ (1 / p₀)) ^ p₀ = c0⁻¹ := by        calc          ((c0⁻¹) ^ (1 / p₀)) ^ p₀ = (c0⁻¹) ^ ((1 / p₀) * p₀) := by            rw [ Real.rpow_mul (inv_nonneg.mpr hc0_nonneg)]          _ = (c0⁻¹) ^ (1 : ) := by            congr 1            field_simp [hp₀.ne']          _ = c0⁻¹ := by rw [Real.rpow_one]      calc        c0⁻¹ = ((c0⁻¹) ^ (1 / p₀)) ^ p₀ := hleft.symm        _  (essInf u μhalf) ^ p₀ := hpow    have hC_pos : 0 < C_weakHarnack0 d :=      lt_of_lt_of_le zero_lt_one (one_le_C_weakHarnack0 (d := d))    have hLpow_ne : L ^ ((d : ) / 2)  0 := (Real.rpow_pos_of_pos hL_pos _).ne'    have hLneg : L ^ (-(d : ) / 2) = (L ^ ((d : ) / 2))⁻¹ := by      rw [show (-(d : ) / 2) = -((d : ) / 2) by ring, Real.rpow_neg hL_pos.le]    calc      L ^ (-(d : ) / 2) * I⁻¹          = C_weakHarnack0 d * c0⁻¹ := by              dsimp [c0]              rw [hLneg]              field_simp [hC_pos.ne', hLpow_ne, hI_pos.ne']      _  C_weakHarnack0 d * (essInf u μhalf) ^ p₀ := by            exact mul_le_mul_of_nonneg_left hpow_ess hC_nonneg  · have hrhs_nonneg : 0  C_weakHarnack0 d * (essInf u μhalf) ^ p₀ := by      exact mul_nonneg hC_nonneg (Real.rpow_nonneg hessInf_nonneg _)    have hI_zero :        ∫ x in Metric.ball (0 : E) 1, |(u x)⁻¹| ^ p₀ ∂volume = 0 := by      simpa using (integral_undef hpInt :        ∫ x in Metric.ball (0 : E) 1, |(u x)⁻¹| ^ p₀ ∂volume = 0)    calc      (A.1* p₀ ^ 2 + 1) ^ (-(d : ) / 2) *          (∫ x in Metric.ball (0 : E) 1, |(u x)⁻¹| ^ p₀ ∂volume)⁻¹          = 0 := by rw [hI_zero]; simp      _  C_weakHarnack0 d * (essInf u μhalf) ^ p₀ := hrhs_nonneg
Project
DeGiorgi
License
Apache-2.0
Commit
4c1b3077d378
Source
DeGiorgi/Supersolutions/StageOne.lean:35-172

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