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

Log gradient bound of supersolution

DeGiorgi.log_gradient_bound_of_supersolution

Plain-language statement

Logarithmic gradient bound for positive supersolutions. If u > 0 satisfies -∇·(A∇u) ≥ 0 on Ω, then for every smooth cutoff φ supported in Ω: ∫_Ω φ² |∇u|²/u² ≤ 4Λ ∫_Ω |∇φ|². Equivalently, setting v = -log u: ∫_Ω φ² |∇v|² ≤ 4Λ ∫_Ω |∇φ|². Proof: apply log_gradient_bound_eps for each ε > 0 to get ∫ φ²|∇u|²/(u+ε)² ≤ 4Λ ∫ |∇φ|², then send...

Exact Lean statement

theorem log_gradient_bound_of_supersolution
    {Ω : Set E} (hΩ : IsOpen Ω)
    (A : EllipticCoeff d Ω)
    {u : E → ℝ}
    (hu_pos : ∀ x ∈ Ω, 0 < u x)
    (hsuper : IsSupersolution A u)
    {φ : E → ℝ} (hφ : ContDiff ℝ (⊤ : ℕ∞) φ)
    (hφ_cs : HasCompactSupport φ) (hφ_sub : tsupport φ ⊆ Ω)
    (hw_u : MemW1pWitness 2 u Ω) :
    ∫ x in Ω, φ x ^ 2 * ‖hw_u.weakGrad x‖ ^ 2 / (u x) ^ 2 ≤
      4 * A.Λ / A.lam * ∫ x in Ω, ‖fderiv ℝ φ x‖ ^ 2

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem log_gradient_bound_of_supersolution    {Ω : Set E} (hΩ : IsOpen Ω)    (A : EllipticCoeff d Ω)    {u : E  }    (hu_pos :  x  Ω, 0 < u x)    (hsuper : IsSupersolution A u)    {φ : E  } (hφ : ContDiff  (⊤ : ∞) φ)    (hφ_cs : HasCompactSupport φ) (hφ_sub : tsupport φ  Ω)    (hw_u : MemW1pWitness 2 u Ω) :    ∫ x in Ω, φ x ^ 2 *hw_u.weakGrad x‖ ^ 2 / (u x) ^ 2       4 * A.Λ / A.lam * ∫ x in Ω, ‖fderiv  φ x‖ ^ 2 := by  -- The RHS is independent of ε, and for each ε > 0:  --   ∫ φ²|∇u|²/(u+ε)² ≤ 4Λ ∫ |∇φ|² (by log_gradient_bound_eps).  -- As ε ↘ 0, the LHS increases to ∫ φ²|∇u|²/u² (since u > 0 on Ω).  -- Apply monotone convergence to pass the bound to the limit.  suffices h :  ε : , 0 < ε       ∫ x in Ω, φ x ^ 2 *hw_u.weakGrad x‖ ^ 2 / (u x + ε) ^ 2         4 * A.Λ / A.lam * ∫ x in Ω, ‖fderiv  φ x‖ ^ 2 from by    let μ : Measure E := volume.restrict Ω    let εn :    := fun n => 1 / ((n : ) + 1)    let g :   E   := fun n x =>      (φ x / (u x + εn n)) ^ 2 *hw_u.weakGrad x‖ ^ 2    let g0 : E   := fun x =>      (φ x / u x) ^ 2 *hw_u.weakGrad x‖ ^ 2    set R := 4 * A.Λ / A.lam * ∫ x in Ω, ‖fderiv  φ x‖ ^ 2    obtain Cφ, hCφ := hφ_cs.exists_bound_of_continuous hφ.continuous    have hCφ_nonneg : 0 := le_trans (norm_nonneg _) (hCφ (0 : E))    have hεn_pos :  n, 0 < εn n := by      intro n      dsimp [εn]      positivity    have hu_eps_aemeas :  n, AEMeasurable (fun x => u x + εn n) μ := by      intro n      exact ((continuous_id.add continuous_const).comp_aestronglyMeasurable        hw_u.memLp.aestronglyMeasurable).aemeasurable    have hweight_sq_meas :         n, AEStronglyMeasurable (fun x => (φ x / (u x + εn n)) ^ 2) μ := by      intro n      exact ((hφ.continuous.aestronglyMeasurable.aemeasurable.div        (hu_eps_aemeas n)).pow_const 2).aestronglyMeasurable    have hweight_sq_bound :         n x, |(φ x / (u x + εn n)) ^ 2| ^ 2 / (εn n) ^ 2 := by      intro n x      by_cases hx : x  Ω      · have hu_eps_pos : 0 < u x + εn n := by linarith [hu_pos x hx, hεn_pos n]        have hnum : |φ x| := (Real.norm_eq_abs (φ x)).symm ▸ hCφ x        have hnonneg : 0 / εn n := div_nonneg hCφ_nonneg (hεn_pos n).le        have hε_le : εn n  u x + εn n := by linarith [hu_pos x hx]        have hbound : |φ x / (u x + εn n)| / εn n := by          rw [abs_div, abs_of_nonneg hu_eps_pos.le]          refine le_trans ?_ (div_le_div_of_nonneg_right hnum (hεn_pos n).le)          exact div_le_div_of_nonneg_left (abs_nonneg _) (hεn_pos n) hε_le        calc          |(φ x / (u x + εn n)) ^ 2| = |φ x / (u x + εn n)| ^ 2 := by rw [abs_pow]          _  (Cφ / εn n) ^ 2 := by              nlinarith [hbound, abs_nonneg (φ x / (u x + εn n)), hnonneg]          _ =^ 2 / (εn n) ^ 2 := by ring      · have hφ0 : φ x = 0 := by          by_contra hφx          exact hx (hφ_sub (subset_tsupport φ (Function.mem_support.mpr hφx)))        have hnonneg : 0 ^ 2 / (εn n) ^ 2 := by          positivity        simpa [hφ0] using hnonneg    have hgrad_sq_meas : AEStronglyMeasurable (fun x =>hw_u.weakGrad x‖ ^ 2) μ := by      exact (hw_u.weakGrad_norm_memLp.aestronglyMeasurable.aemeasurable.pow_const 2).aestronglyMeasurable    have hg_meas :  n, AEMeasurable (g n) μ := by      intro n      exact (hweight_sq_meas n).aemeasurable.mul hgrad_sq_meas.aemeasurable    have hg0_meas : AEStronglyMeasurable g0 μ := by      exact ((hφ.continuous.aestronglyMeasurable.aemeasurable.div        hw_u.memLp.aestronglyMeasurable.aemeasurable).pow_const 2).aestronglyMeasurable.mul hgrad_sq_meas    have hg_nonneg :  n, 0 ᵐ[μ] g n := by      intro n      exact Filter.Eventually.of_forall fun x => by        dsimp [g]        exact mul_nonneg (sq_nonneg _) (sq_nonneg _)    have hg0_nonneg : 0 ᵐ[μ] g0 := by      exact Filter.Eventually.of_forall fun x => by        dsimp [g0]        exact mul_nonneg (sq_nonneg _) (sq_nonneg _)    have hg_int :  n, Integrable (g n) μ := by      intro n      exact (hw_u.weakGrad_norm_memLp.integrable_sq).bdd_mul        (c :=^ 2 / (εn n) ^ 2) (hweight_sq_meas n)        (Filter.Eventually.of_forall (hweight_sq_bound n))    have hright_eq :         n,          ∫⁻ x, ENNReal.ofReal (g n x) ∂μ =            ENNReal.ofReal (∫ x, g n x ∂μ) := by      intro n      exact        (MeasureTheory.ofReal_integral_eq_lintegral_ofReal:= μ) (f := g n) (hg_int n) (hg_nonneg n)).symm    have hfR :  n, ∫ x, g n x ∂μ  R := by      intro n      have hbound := h (εn n) (hεn_pos n)      change ∫ x in Ω, g n x ∂volume  R      have hEq :          ∫ x in Ω, g n x ∂volume =            ∫ x in Ω, φ x ^ 2 *hw_u.weakGrad x‖ ^ 2 / (u x + εn n) ^ 2 ∂volume := by        refine integral_congr_ae ?_        filter_upwards with x        dsimp [g]        rw [div_pow]        ring      rw [hEq]      exact hbound    have hFatou :        ∫⁻ x, ENNReal.ofReal (g0 x) ∂μ           atTop.liminf (fun n => ∫⁻ x, ENNReal.ofReal (g n x) ∂μ) := by      have hmeas :           n, AEMeasurable (fun x => ENNReal.ofReal (g n x)) μ := by        intro n        exact (hg_meas n).ennreal_ofReal      have hleft := MeasureTheory.lintegral_liminf_le':= μ) hmeas      have hlim :          (fun x =>            Filter.liminf (fun n => ENNReal.ofReal (g n x)) atTop) =ᵐ[μ]              (fun x => ENNReal.ofReal (g0 x)) := by        filter_upwards [ae_restrict_mem hΩ.measurableSet] with x hx        have hu_posx : 0 < u x := hu_pos x hx        have hden_tend : Tendsto (fun n => u x + εn n) atTop (nhds (u x)) := by          simpa [εn, one_div] using            (tendsto_one_div_add_atTop_nhds_zero_nat.const_add (u x))        have hquot_tend :            Tendsto (fun n => φ x / (u x + εn n)) atTop (nhds (φ x / u x)) := by          exact Tendsto.div tendsto_const_nhds hden_tend hu_posx.ne'        have hreal_tend : Tendsto (fun n => g n x) atTop (nhds (g0 x)) := by          exact ((continuous_pow 2).tendsto (φ x / u x)).comp hquot_tend |>.mul tendsto_const_nhds        have henn_tend :            Tendsto (fun n => ENNReal.ofReal (g n x)) atTop              (nhds (ENNReal.ofReal (g0 x))) := by          exact (ENNReal.continuous_ofReal.tendsto _).comp hreal_tend        exact henn_tend.liminf_eq      calc        ∫⁻ x, ENNReal.ofReal (g0 x) ∂μ            = ∫⁻ x, Filter.liminf (fun n => ENNReal.ofReal (g n x)) atTop ∂μ := by                exact lintegral_congr_ae hlim.symm        _  atTop.liminf (fun n => ∫⁻ x, ENNReal.ofReal (g n x) ∂μ) := hleft    have hliminf_le :        atTop.liminf (fun n => ∫⁻ x, ENNReal.ofReal (g n x) ∂μ)  ENNReal.ofReal R := by      rw [Filter.liminf_congr (Eventually.of_forall hright_eq)]      refine Filter.liminf_le_of_frequently_le' (Frequently.of_forall fun n => ?_)      exact ENNReal.ofReal_le_ofReal (hfR n)    have hmain_enn : ∫⁻ x, ENNReal.ofReal (g0 x) ∂μ  ENNReal.ofReal R := by      exact le_trans hFatou hliminf_le    have hR_nonneg : 0  R := by      dsimp [R]      refine mul_nonneg ?_ (integral_nonneg (fun x => by positivity))      · have hnum_nonneg : 0  4 * A.Λ := by nlinarith [A.Λ_nonneg]        exact div_nonneg hnum_nonneg A.hlam.le    calc      ∫ x in Ω, φ x ^ 2 *hw_u.weakGrad x‖ ^ 2 / (u x) ^ 2          = ∫ x, g0 x ∂μ := by              refine integral_congr_ae ?_              filter_upwards with x              dsimp [g0]              rw [div_pow]              ring      _ = ENNReal.toReal (∫⁻ x, ENNReal.ofReal (g0 x) ∂μ) := by            exact MeasureTheory.integral_eq_lintegral_of_nonneg_ae hg0_nonneg hg0_meas      _  ENNReal.toReal (ENNReal.ofReal R) := by            have hleft_ne_top : ∫⁻ x, ENNReal.ofReal (g0 x) ∂μ := by              exact ne_of_lt (lt_of_le_of_lt hmain_enn (by simp))            exact (ENNReal.toReal_le_toReal hleft_ne_top (by simp)).2 hmain_enn      _ = R := by rw [ENNReal.toReal_ofReal hR_nonneg]      _ = 4 * A.Λ / A.lam * ∫ x in Ω, ‖fderiv  φ x‖ ^ 2 := by            rfl  intro ε hε  exact log_gradient_bound_eps hΩ A hu_pos hsuper hφ hφ_cs hφ_sub hw_u hε
Project
DeGiorgi
License
Apache-2.0
Commit
4c1b3077d378
Source
DeGiorgi/Crossover/LogGradient.lean:1157-1326

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