Linfty subsolution Moser two
DeGiorgi.linfty_subsolution_Moser_two
Plain-language statement
The p = 2 anchor for Chapter 06 is already available from Chapter 05. This is the exact normalized De Giorgi unit-ball estimate rewritten in the Chapter 06 a.e. power-bound format. It is the base case that the later Moser iteration should strictly improve from p = 2 to arbitrary p > 1.
Exact Lean statement
theorem linfty_subsolution_Moser_two
(hd : 2 < (d : ℝ))
(A : NormalizedEllipticCoeff d (Metric.ball (0 : E) 1))
{u : E → ℝ}
(hsub : IsSubsolution A.1 u)
(hposInt :
IntegrableOn (fun x => |max (u x) 0| ^ 2)
(Metric.ball (0 : E) 1) volume) :
∀ᵐ x ∂(volume.restrict (Metric.ball (0 : E) (1 / 2 : ℝ))),
|max (u x) 0| ^ 2 ≤
C_Moser d * A.1.Λ ^ ((d : ℝ) / 2) *
(2 / (2 - 1 : ℝ)) ^ (d : ℝ) *
∫ x in Metric.ball (0 : E) 1, |max (u x) 0| ^ 2 ∂volumeFormal artifact
Lean source
theorem linfty_subsolution_Moser_two (hd : 2 < (d : ℝ)) (A : NormalizedEllipticCoeff d (Metric.ball (0 : E) 1)) {u : E → ℝ} (hsub : IsSubsolution A.1 u) (hposInt : IntegrableOn (fun x => |max (u x) 0| ^ 2) (Metric.ball (0 : E) 1) volume) : ∀ᵐ x ∂(volume.restrict (Metric.ball (0 : E) (1 / 2 : ℝ))), |max (u x) 0| ^ 2 ≤ C_Moser d * A.1.Λ ^ ((d : ℝ) / 2) * (2 / (2 - 1 : ℝ)) ^ (d : ℝ) * ∫ x in Metric.ball (0 : E) 1, |max (u x) 0| ^ 2 ∂volume := by let I₂ : ℝ := ∫ x in Metric.ball (0 : E) 1, |max (u x) 0| ^ 2 ∂volume let c : ℝ := C_DeGiorgi_subsolution_normalized d * A.1.Λ ^ ((d : ℝ) / 4) have hI₂_nonneg : 0 ≤ I₂ := by dsimp [I₂] refine integral_nonneg ?_ intro x positivity have hc_nonneg : 0 ≤ c := by have hCDG_nonneg : 0 ≤ C_DeGiorgi_subsolution_normalized d := by dsimp [C_DeGiorgi_subsolution_normalized] exact (C_DeGiorgiSmallness_pos (d := d) (K_DeGiorgi_subsolution_normalized_pos (d := d))).le dsimp [c] exact mul_nonneg hCDG_nonneg (Real.rpow_nonneg A.1.Λ_nonneg _) filter_upwards [linfty_subsolution_DeGiorgi_normalized (d := d) hd A hsub hposInt] with x hx have hx_nonneg : 0 ≤ max (u x) 0 := by positivity have hsq : |max (u x) 0| ^ 2 ≤ c ^ 2 * I₂ := by have hx' : max (u x) 0 ≤ c * Real.sqrt I₂ := hx have hrhs_nonneg : 0 ≤ c * Real.sqrt I₂ := by exact mul_nonneg hc_nonneg (Real.sqrt_nonneg I₂) have hsq' : (max (u x) 0) ^ 2 ≤ (c * Real.sqrt I₂) ^ 2 := by nlinarith calc |max (u x) 0| ^ 2 = (max (u x) 0) ^ 2 := by rw [abs_of_nonneg hx_nonneg] _ ≤ (c * Real.sqrt I₂) ^ 2 := hsq' _ = c ^ 2 * I₂ := by rw [mul_pow, Real.sq_sqrt hI₂_nonneg] have hconst : c ^ 2 * I₂ ≤ C_Moser d * A.1.Λ ^ ((d : ℝ) / 2) * (2 / (2 - 1 : ℝ)) ^ (d : ℝ) * I₂ := by have hbase : c ^ 2 ≤ C_Moser d * A.1.Λ ^ ((d : ℝ) / 2) * (2 / (2 - 1 : ℝ)) ^ (d : ℝ) := by have hpow : (A.1.Λ ^ ((d : ℝ) / 4)) ^ 2 = A.1.Λ ^ ((d : ℝ) / 2) := by rw [pow_two, ← Real.rpow_add A.1.Λ_pos] ring_nf calc c ^ 2 = (C_DeGiorgi_subsolution_normalized d) ^ 2 * A.1.Λ ^ ((d : ℝ) / 2) := by dsimp [c] rw [mul_pow, hpow] _ ≤ C_Moser d * A.1.Λ ^ ((d : ℝ) / 2) := by exact mul_le_mul_of_nonneg_right (C_DeGiorgi_subsolution_normalized_sq_le_C_Moser (d := d)) (Real.rpow_nonneg A.1.Λ_nonneg _) _ ≤ C_Moser d * A.1.Λ ^ ((d : ℝ) / 2) * (2 / (2 - 1 : ℝ)) ^ (d : ℝ) := by have hleft_nonneg : 0 ≤ C_Moser d * A.1.Λ ^ ((d : ℝ) / 2) := by exact mul_nonneg (le_trans (by norm_num : (0 : ℝ) ≤ 1) (one_le_C_Moser (d := d))) (Real.rpow_nonneg A.1.Λ_nonneg _) have hone : (1 : ℝ) ≤ (2 / (2 - 1 : ℝ)) ^ (d : ℝ) := by have hbase : (1 : ℝ) ≤ 2 / (2 - 1 : ℝ) := by norm_num have hd_nonneg : 0 ≤ (d : ℝ) := by exact_mod_cast Nat.zero_le d exact Real.one_le_rpow hbase hd_nonneg simpa [mul_assoc] using (mul_le_mul_of_nonneg_left hone hleft_nonneg) exact mul_le_mul_of_nonneg_right hbase hI₂_nonneg exact le_trans hsq (by simpa [I₂] using hconst)- Project
- DeGiorgi
- License
- Apache-2.0
- Commit
- 4c1b3077d378
- Source
- DeGiorgi/MoserIteration/Linfty.lean:396-480
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
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₂.
Source project: DeGiorgi
Person-level attribution pending.
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.
Source project: DeGiorgi
Person-level attribution pending.
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) < ∞.
Source project: DeGiorgi
Person-level attribution pending.