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

Ae eq zero of mem H01 of grad Lp Of Witness eq zero

DeGiorgi.ae_eq_zero_of_memH01_of_gradLpOfWitness_eq_zero

Plain-language statement

A zero-trace Sobolev function with vanishing gradient class vanishes almost everywhere.

Exact Lean statement

theorem ae_eq_zero_of_memH01_of_gradLpOfWitness_eq_zero
    {Ω : Set E} (hd : 2 ≤ d) (hΩ : IsOpen Ω)
    (hΩ_bdd : Bornology.IsBounded Ω)
    {u : E → ℝ}
    (hu0 : MemH01 u Ω)
    (hwu : MemW1pWitness 2 u Ω)
    (hgrad_zero : gradLpOfWitness hwu = 0) :
    u =ᵐ[volume.restrict Ω] 0

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem ae_eq_zero_of_memH01_of_gradLpOfWitness_eq_zero    {Ω : Set E} (hd : 2  d) (hΩ : IsOpen Ω)    (hΩ_bdd : Bornology.IsBounded Ω)    {u : E  }    (hu0 : MemH01 u Ω)    (hwu : MemW1pWitness 2 u Ω)    (hgrad_zero : gradLpOfWitness hwu = 0) :    u =ᵐ[volume.restrict Ω] 0 := by  let μ : Measure E := volume.restrict Ω  obtain hu_mem, hw0, φ, hφ_smooth, hφ_cpt, hφ_sub, hφ_fun, hφ_grad := hu0  have hgrad_ae :      hw0.weakGrad =ᵐ[μ] hwu.weakGrad := by    simpa [μ] using MemW1pWitness.ae_eq hΩ hw0 hwu  have hgradLp_eq : gradLpOfWitness hw0 = gradLpOfWitness hwu := by    simpa [gradLpOfWitness] using      (MemLp.toLp_congr hw0.weakGrad_memLp hwu.weakGrad_memLp hgrad_ae)  have hgrad_zero0 : gradLpOfWitness hw0 = 0 := by    rw [hgradLp_eq]    exact hgrad_zero  let hφtest :  n : , IsSmoothTestOn Ω (φ n) := fun n =>    hφ_smooth n, hφ_cpt n, hφ_sub n  let hφw :  n : , MemW1pWitness 2 (φ n) Ω := fun n =>    smoothTestWitness hΩ (hφtest n)  have hφ_fun_tendsto :      Tendsto (fun n => smoothFunToLp hΩ (hφtest n))        atTop (nhds (hu_mem.1.toLp u)) := by    exact      (Lp.tendsto_Lp_iff_tendsto_eLpNorm'' (f := φ)        (f_ℒp := fun n => (hφw n).memLp)        (f_lim := u) (f_lim_ℒp := hu_mem.1)).2 <| by          simpa [μ] using hφ_fun  have hgrad_vec_tendsto :      Tendsto        (fun n => eLpNorm (fun x => (hφw n).weakGrad x - hw0.weakGrad x) 2 μ)        atTop (nhds 0) := by    exact tendsto_eLpNorm_vector_of_componentwise      (fun n i => by        simpa [hφw] using ((hφw n).weakGrad_component_memLp i).sub (hw0.weakGrad_component_memLp i))      (fun i => by simpa [μ] using hφ_grad i)  have hgradLp_tendsto :      Tendsto (fun n => gradLpOfWitness (hφw n))        atTop (nhds (gradLpOfWitness hw0)) := by    exact      (Lp.tendsto_Lp_iff_tendsto_eLpNorm'' (f := fun n => (hφw n).weakGrad)        (f_ℒp := fun n => (hφw n).weakGrad_memLp)        (f_lim := hw0.weakGrad) (f_lim_ℒp := hw0.weakGrad_memLp)).2        hgrad_vec_tendsto  have hgradLp_zero_tendsto :      Tendsto (fun n => gradLpOfWitness (hφw n)) atTop (nhds 0) := by    simpa [hgrad_zero0] using hgradLp_tendsto  obtain Cp, hCp_top, hPoinc := smoothCompactSupport_L2_bound_on_bounded_ge_two hd hΩ_bdd  have hfun_bound :       n, ‖smoothFunToLp hΩ (hφtest n)‖  Cp.toReal * ‖smoothGradToLp hΩ (hφtest n)‖ := by    intro n    have hgradNorm_memLp : MemLp (smoothGradNorm (φ n)) 2 μ := by      simpa [μ, norm_smoothGradField_eq_smoothGradNorm] using (hφw n).weakGrad_memLp.norm    have hP :        eLpNorm (φ n) 2 μ  Cp * eLpNorm (smoothGradNorm (φ n)) 2 μ := by      simpa [μ] using hPoinc (hφ_smooth n) (hφ_cpt n) (hφ_sub n)    have hleft_top : eLpNorm (φ n) 2 μ := (hφw n).memLp.eLpNorm_lt_top.ne    have hright_top : Cp * eLpNorm (smoothGradNorm (φ n)) 2 μ := by      exact (ENNReal.mul_lt_top hCp_top hgradNorm_memLp.eLpNorm_lt_top).ne    have hToReal :        (eLpNorm (φ n) 2 μ).toReal  (Cp * eLpNorm (smoothGradNorm (φ n)) 2 μ).toReal :=      (ENNReal.toReal_le_toReal hleft_top hright_top).2 hP    have hfunEq : ‖smoothFunToLp hΩ (hφtest n)‖ = (eLpNorm (φ n) 2 μ).toReal := by      rw [smoothFunToLp, Lp.norm_toLp]    have hgradEq : ‖smoothGradToLp hΩ (hφtest n)‖ = (eLpNorm (smoothGradNorm (φ n)) 2 μ).toReal := by      have hgrad_memLp : MemLp (smoothGradField (φ n)) 2 μ := (hφw n).weakGrad_memLp      calc        ‖smoothGradToLp hΩ (hφtest n)‖            = (∫ x, ‖smoothGradField (φ n) x‖ ^ (2 : ) ∂μ) ^ (1 / (2 : )) := by                simpa [μ] using norm_smoothGradToLp_eq hΩ (hφtest n)        _ = (eLpNorm (smoothGradField (φ n)) 2 μ).toReal := by              symm              rw [MeasureTheory.toReal_eLpNorm hgrad_memLp.aestronglyMeasurable]              simpa using                (MeasureTheory.lpNorm_eq_integral_norm_rpow_toReal:= μ) (f := smoothGradField (φ n)) (p := (2 : ENNReal))                  (by norm_num) (by simp) hgrad_memLp.aestronglyMeasurable)        _ = (eLpNorm (smoothGradNorm (φ n)) 2 μ).toReal := by              congr 1              calc                eLpNorm (smoothGradField (φ n)) 2 μ =                    eLpNorm (fun x => ‖smoothGradField (φ n) x‖) 2 μ := by                      symm                      exact eLpNorm_norm (μ := μ) (p := (2 : ENNReal)) (smoothGradField (φ n))                _ = eLpNorm (smoothGradNorm (φ n)) 2 μ := by                      simp [norm_smoothGradField_eq_smoothGradNorm]    rw [hfunEq, hgradEq]    convert hToReal using 1    rw [ENNReal.toReal_mul]  have hgrad_norm_tendsto :      Tendsto (fun n => ‖smoothGradToLp hΩ (hφtest n)‖) atTop (nhds 0) := by    have hnorm_tendsto :        Tendsto (fun n => ‖gradLpOfWitness (hφw n)‖) atTop (nhds 0) := by      simpa using ((continuous_norm.tendsto (0 : MeasureTheory.Lp E 2 μ)).comp hgradLp_zero_tendsto)    simpa [smoothGradToLp, hφw] using hnorm_tendsto  have hfun_norm_tendsto :      Tendsto (fun n => ‖smoothFunToLp hΩ (hφtest n)‖) atTop (nhds 0) := by    have hupper :        Tendsto (fun n => Cp.toReal * ‖smoothGradToLp hΩ (hφtest n)‖) atTop (nhds 0) := by      simpa using Tendsto.const_mul Cp.toReal hgrad_norm_tendsto    exact squeeze_zero (fun n => norm_nonneg _) hfun_bound hupper  have hfun_zero_tendsto :      Tendsto (fun n => smoothFunToLp hΩ (hφtest n)) atTop (nhds 0) := by    exact tendsto_zero_iff_norm_tendsto_zero.2 hfun_norm_tendsto  have hu_toLp_zero : hu_mem.1.toLp u = 0 := by    exact tendsto_nhds_unique hφ_fun_tendsto hfun_zero_tendsto  have htoLp_zero_ae : (hu_mem.1.toLp u : E  ) =ᵐ[μ] (0 : E  ) := by    let h0_mem : MemLp (0 : E  ) 2 μ := MeasureTheory.MemLp.zero'    have h0_ae : (h0_mem.toLp (0 : E  ) : E  ) =ᵐ[μ] (0 : E  ) := by      exact MemLp.coeFn_toLp h0_mem    rw [hu_toLp_zero]    simpa [h0_mem.toLp_zero] using h0_ae  calc    u =ᵐ[μ] hu_mem.1.toLp u := (MemLp.coeFn_toLp hu_mem.1).symm    _ =ᵐ[μ] (0 : E  ) := htoLp_zero_ae
Project
DeGiorgi
License
Apache-2.0
Commit
4c1b3077d378
Source
DeGiorgi/WeakFormulation/ExistenceTheory.lean:888-1005

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