Skip to content

Commit 93eba12

Browse files
sgouezelfpvandoorn
andcommitted
feat: drop sfiniteness in a lemma on L^p norm for a restricted measure (#14289)
Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>
1 parent 51ee181 commit 93eba12

File tree

5 files changed

+54
-11
lines changed

5 files changed

+54
-11
lines changed

Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ theorem snorm_le_snorm_fderiv_of_le [FiniteDimensional ℝ F]
673673
· positivity
674674
set t := (μ s).toNNReal ^ (1 / q - 1 / p' : ℝ)
675675
let C := SNormLESNormFDerivOfEqConst F μ p
676-
calc snorm u q μ = snorm u q (μ.restrict s) := by rw [snorm_restrict_eq h2u]
676+
calc snorm u q μ = snorm u q (μ.restrict s) := by rw [snorm_restrict_eq_of_support_subset h2u]
677677
_ ≤ snorm u p' (μ.restrict s) * t := by
678678
convert snorm_le_snorm_mul_rpow_measure_univ this hu.continuous.aestronglyMeasurable
679679
rw [← ENNReal.coe_rpow_of_nonneg]
@@ -682,7 +682,7 @@ theorem snorm_le_snorm_fderiv_of_le [FiniteDimensional ℝ F]
682682
norm_cast
683683
rw [hp']
684684
simpa using hpq
685-
_ = snorm u p' μ * t := by rw [snorm_restrict_eq h2u]
685+
_ = snorm u p' μ * t := by rw [snorm_restrict_eq_of_support_subset h2u]
686686
_ ≤ (C * snorm (fderiv ℝ u) p μ) * t := by
687687
have h2u' : HasCompactSupport u := by
688688
apply HasCompactSupport.of_support_subset_isCompact hs.isCompact_closure

Mathlib/MeasureTheory/Function/EssSup.lean

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,4 +304,28 @@ theorem coe_essSup {f : α → ℝ≥0} (hf : IsBoundedUnder (· ≤ ·) (ae μ)
304304
simp [essSup, limsup, limsSup, eventually_map, ENNReal.forall_ennreal]; rfl
305305
#align ennreal.coe_ess_sup ENNReal.coe_essSup
306306

307+
lemma essSup_restrict_eq_of_support_subset {s : Set α} {f : α → ℝ≥0∞} (hsf : f.support ⊆ s) :
308+
essSup f (μ.restrict s) = essSup f μ := by
309+
apply le_antisymm (essSup_mono_measure' Measure.restrict_le_self)
310+
apply le_of_forall_lt (fun c hc ↦ ?_)
311+
obtain ⟨d, cd, hd⟩ : ∃ d, c < d ∧ d < essSup f μ := exists_between hc
312+
let t := {x | d < f x}
313+
have A : 0 < (μ.restrict t) t := by
314+
simp only [Measure.restrict_apply_self]
315+
rw [essSup_eq_sInf] at hd
316+
have : d ∉ {a | μ {x | a < f x} = 0} := not_mem_of_lt_csInf hd (OrderBot.bddBelow _)
317+
exact bot_lt_iff_ne_bot.2 this
318+
have B : 0 < (μ.restrict s) t := by
319+
have : μ.restrict t ≤ μ.restrict s := by
320+
apply Measure.restrict_mono _ le_rfl
321+
apply subset_trans _ hsf
322+
intro x (hx : d < f x)
323+
exact (lt_of_le_of_lt bot_le hx).ne'
324+
exact lt_of_lt_of_le A (this _)
325+
apply cd.trans_le
326+
rw [essSup_eq_sInf]
327+
apply le_sInf (fun b hb ↦ ?_)
328+
contrapose! hb
329+
exact ne_of_gt (B.trans_le (measure_mono (fun x hx ↦ hb.trans hx)))
330+
307331
end ENNReal

Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,24 @@ lemma snorm_restrict_le (f : α → F) (p : ℝ≥0∞) (μ : Measure α) (s : S
629629
snorm f p (μ.restrict s) ≤ snorm f p μ :=
630630
snorm_mono_measure f Measure.restrict_le_self
631631

632+
/-- For a function `f` with support in `s`, the Lᵖ norms of `f` with respect to `μ` and
633+
`μ.restrict s` are the same. -/
634+
theorem snorm_restrict_eq_of_support_subset {s : Set α} {f : α → F} (hsf : f.support ⊆ s) :
635+
snorm f p (μ.restrict s) = snorm f p μ := by
636+
by_cases hp0 : p = 0
637+
· simp [hp0]
638+
by_cases hp_top : p = ∞
639+
· simp only [hp_top, snorm_exponent_top, snormEssSup]
640+
apply ENNReal.essSup_restrict_eq_of_support_subset
641+
apply Function.support_subset_iff.2 (fun x hx ↦ ?_)
642+
simp only [ne_eq, ENNReal.coe_eq_zero, nnnorm_eq_zero] at hx
643+
exact Function.support_subset_iff.1 hsf x hx
644+
· simp_rw [snorm_eq_snorm' hp0 hp_top, snorm']
645+
congr 1
646+
apply setLIntegral_eq_of_support_subset
647+
have : ¬(p.toReal ≤ 0) := by simpa only [not_le] using ENNReal.toReal_pos hp0 hp_top
648+
simpa [this] using hsf
649+
632650
theorem Memℒp.restrict (s : Set α) {f : α → E} (hf : Memℒp f p μ) : Memℒp f p (μ.restrict s) :=
633651
hf.mono_measure Measure.restrict_le_self
634652
#align measure_theory.mem_ℒp.restrict MeasureTheory.Memℒp.restrict

Mathlib/MeasureTheory/Function/LpSpace.lean

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -673,15 +673,6 @@ theorem memℒp_indicator_iff_restrict (hs : MeasurableSet s) :
673673
simp [Memℒp, aestronglyMeasurable_indicator_iff hs, snorm_indicator_eq_snorm_restrict hs]
674674
#align measure_theory.mem_ℒp_indicator_iff_restrict MeasureTheory.memℒp_indicator_iff_restrict
675675

676-
/-- For a function `f` with support in `s`, the Lᵖ norms of `f` with respect to `μ` and
677-
`μ.restrict s` are the same. -/
678-
theorem snorm_restrict_eq [SFinite μ] {s : Set α} (hsf : f.support ⊆ s) :
679-
snorm f p (μ.restrict s) = snorm f p μ := by
680-
replace hsf := hsf.trans <| subset_toMeasurable μ s
681-
simp_rw [Function.support_subset_iff', ← Set.indicator_apply_eq_self] at hsf
682-
simp_rw [← μ.restrict_toMeasurable_of_sFinite s,
683-
← snorm_indicator_eq_snorm_restrict (measurableSet_toMeasurable μ s), funext hsf]
684-
685676
/-- If a function is supported on a finite-measure set and belongs to `ℒ^p`, then it belongs to
686677
`ℒ^q` for any `q ≤ p`. -/
687678
theorem Memℒp.memℒp_of_exponent_le_of_measure_support_ne_top

Mathlib/MeasureTheory/Integral/Lebesgue.lean

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,16 @@ theorem lintegral_indicator_const {s : Set α} (hs : MeasurableSet s) (c : ℝ
850850
lintegral_indicator_const₀ hs.nullMeasurableSet c
851851
#align measure_theory.lintegral_indicator_const MeasureTheory.lintegral_indicator_const
852852

853+
lemma setLIntegral_eq_of_support_subset {s : Set α} {f : α → ℝ≥0∞} (hsf : f.support ⊆ s) :
854+
∫⁻ x in s, f x ∂μ = ∫⁻ x, f x ∂μ := by
855+
apply le_antisymm (setLIntegral_le_lintegral s fun x ↦ f x)
856+
apply le_trans (le_of_eq _) (lintegral_indicator_le _ _)
857+
congr with x
858+
simp only [indicator]
859+
split_ifs with h
860+
· rfl
861+
· exact Function.support_subset_iff'.1 hsf x h
862+
853863
theorem setLIntegral_eq_const {f : α → ℝ≥0∞} (hf : Measurable f) (r : ℝ≥0∞) :
854864
∫⁻ x in { x | f x = r }, f x ∂μ = r * μ { x | f x = r } := by
855865
have : ∀ᵐ x ∂μ, x ∈ { x | f x = r } → f x = r := ae_of_all μ fun _ hx => hx

0 commit comments

Comments
 (0)