Skip to content

Commit fe463e1

Browse files
fpvandoorndagurtomas
authored andcommitted
feat: prove the Gagliardo-Nirenberg-Sobolev inequality (#14165)
* From the Sobolev inequality project Co-authored-by: Heather Macbeth [email protected]
1 parent 5120ffd commit fe463e1

File tree

4 files changed

+729
-5
lines changed

4 files changed

+729
-5
lines changed

Mathlib.lean

+1
Original file line numberDiff line numberDiff line change
@@ -3053,6 +3053,7 @@ import Mathlib.MeasureTheory.Integral.Pi
30533053
import Mathlib.MeasureTheory.Integral.RieszMarkovKakutani
30543054
import Mathlib.MeasureTheory.Integral.SetIntegral
30553055
import Mathlib.MeasureTheory.Integral.SetToL1
3056+
import Mathlib.MeasureTheory.Integral.SobolevInequality
30563057
import Mathlib.MeasureTheory.Integral.TorusIntegral
30573058
import Mathlib.MeasureTheory.Integral.VitaliCaratheodory
30583059
import Mathlib.MeasureTheory.MeasurableSpace.Basic

Mathlib/Analysis/Calculus/FDeriv/Measurable.lean

+5-5
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ theorem measurableSet_of_differentiableAt : MeasurableSet { x | DifferentiableAt
392392
simp
393393
#align measurable_set_of_differentiable_at measurableSet_of_differentiableAt
394394

395-
@[measurability]
395+
@[measurability, fun_prop]
396396
theorem measurable_fderiv : Measurable (fderiv 𝕜 f) := by
397397
refine measurable_of_isClosed fun s hs => ?_
398398
have :
@@ -406,15 +406,15 @@ theorem measurable_fderiv : Measurable (fderiv 𝕜 f) := by
406406
((measurableSet_of_differentiableAt _ _).compl.inter (MeasurableSet.const _))
407407
#align measurable_fderiv measurable_fderiv
408408

409-
@[measurability]
409+
@[measurability, fun_prop]
410410
theorem measurable_fderiv_apply_const [MeasurableSpace F] [BorelSpace F] (y : E) :
411411
Measurable fun x => fderiv 𝕜 f x y :=
412412
(ContinuousLinearMap.measurable_apply y).comp (measurable_fderiv 𝕜 f)
413413
#align measurable_fderiv_apply_const measurable_fderiv_apply_const
414414

415415
variable {𝕜}
416416

417-
@[measurability]
417+
@[measurability, fun_prop]
418418
theorem measurable_deriv [MeasurableSpace 𝕜] [OpensMeasurableSpace 𝕜] [MeasurableSpace F]
419419
[BorelSpace F] (f : 𝕜 → F) : Measurable (deriv f) := by
420420
simpa only [fderiv_deriv] using measurable_fderiv_apply_const 𝕜 f 1
@@ -747,7 +747,7 @@ theorem measurableSet_of_differentiableWithinAt_Ici :
747747
simp
748748
#align measurable_set_of_differentiable_within_at_Ici measurableSet_of_differentiableWithinAt_Ici
749749

750-
@[measurability]
750+
@[measurability, fun_prop]
751751
theorem measurable_derivWithin_Ici [MeasurableSpace F] [BorelSpace F] :
752752
Measurable fun x => derivWithin f (Ici x) x := by
753753
refine measurable_of_isClosed fun s hs => ?_
@@ -800,7 +800,7 @@ theorem measurableSet_of_differentiableWithinAt_Ioi :
800800
simpa [differentiableWithinAt_Ioi_iff_Ici] using measurableSet_of_differentiableWithinAt_Ici f
801801
#align measurable_set_of_differentiable_within_at_Ioi measurableSet_of_differentiableWithinAt_Ioi
802802

803-
@[measurability]
803+
@[measurability, fun_prop]
804804
theorem measurable_derivWithin_Ioi [MeasurableSpace F] [BorelSpace F] :
805805
Measurable fun x => derivWithin f (Ioi x) x := by
806806
simpa [derivWithin_Ioi_eq_Ici] using measurable_derivWithin_Ici f

Mathlib/MeasureTheory/Function/LpSpace.lean

+10
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Mathlib.MeasureTheory.Function.LpSeminorm.ChebyshevMarkov
1111
import Mathlib.MeasureTheory.Function.LpSeminorm.CompareExp
1212
import Mathlib.MeasureTheory.Function.LpSeminorm.TriangleInequality
1313
import Mathlib.MeasureTheory.Measure.OpenPos
14+
import Mathlib.MeasureTheory.Measure.Typeclasses
1415
import Mathlib.Analysis.NormedSpace.OperatorNorm.NormedSpace
1516
import Mathlib.Topology.ContinuousFunction.Compact
1617
import Mathlib.Order.Filter.IndicatorFunction
@@ -672,6 +673,15 @@ theorem memℒp_indicator_iff_restrict (hs : MeasurableSet s) :
672673
simp [Memℒp, aestronglyMeasurable_indicator_iff hs, snorm_indicator_eq_snorm_restrict hs]
673674
#align measure_theory.mem_ℒp_indicator_iff_restrict MeasureTheory.memℒp_indicator_iff_restrict
674675

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+
675685
/-- If a function is supported on a finite-measure set and belongs to `ℒ^p`, then it belongs to
676686
`ℒ^q` for any `q ≤ p`. -/
677687
theorem Memℒp.memℒp_of_exponent_le_of_measure_support_ne_top

0 commit comments

Comments
 (0)