Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat: prove the Gagliardo-Nirenberg-Sobolev inequality #14165

Closed
wants to merge 34 commits into from
Closed
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
e315fa4
some lemmas
fpvandoorn Jun 10, 2024
0bb2c5d
add more
fpvandoorn Jun 25, 2024
e3d17ac
Merge remote-tracking branch 'origin/master' into marginal-lemmas2
fpvandoorn Jun 25, 2024
5d8db3d
various lemmas
fpvandoorn Jun 26, 2024
d3c4085
two logic lemmas
fpvandoorn Jun 26, 2024
67b7497
Merge remote-tracking branch 'origin/master' into marginal-lemmas2
fpvandoorn Jun 26, 2024
5258d7c
remove logic lemmas
fpvandoorn Jun 26, 2024
19e92f8
fix
fpvandoorn Jun 26, 2024
88139a3
Merge branch 'fvd/marginal3lemmas' into HEAD
fpvandoorn Jun 26, 2024
9f11167
Merge branch 'marginal-lemmas2' into HEAD
fpvandoorn Jun 26, 2024
5891d3b
prove sobolev inequality
fpvandoorn Jun 26, 2024
ab2760a
fix
fpvandoorn Jun 26, 2024
334a3fe
fix build
fpvandoorn Jun 26, 2024
51c9624
first review comment
fpvandoorn Jun 26, 2024
a2c3bc7
rest of review
fpvandoorn Jun 26, 2024
2e64505
small
fpvandoorn Jun 26, 2024
186c95e
Merge remote-tracking branch 'origin/master' into sobolevinequality
fpvandoorn Jun 26, 2024
0ea3684
fix
fpvandoorn Jun 26, 2024
b4d648f
fix
fpvandoorn Jun 26, 2024
88fc219
do not prime name
fpvandoorn Jun 26, 2024
4e6ce97
fix
fpvandoorn Jun 26, 2024
b28295f
incoroporate 1 review comment
fpvandoorn Jun 27, 2024
bed1994
2 review comments
fpvandoorn Jun 27, 2024
fce981e
give more explanations about the proof in the module doc and two proofs
fpvandoorn Jun 27, 2024
4754712
more documentation
fpvandoorn Jun 27, 2024
7d32aba
improve snorm_restrict_eq, modify proof
fpvandoorn Jun 27, 2024
13a1c65
fix
fpvandoorn Jun 27, 2024
fdf98f6
remove 2 unused variables
fpvandoorn Jun 27, 2024
b68197a
separate the constants out as definitions
fpvandoorn Jun 28, 2024
b3388ba
fix docstrings
fpvandoorn Jun 28, 2024
fa8e19d
add paragraph in module doc
fpvandoorn Jun 28, 2024
c4e9cb0
cleanup
fpvandoorn Jun 28, 2024
9d13e31
last review
fpvandoorn Jun 28, 2024
809a3c5
fix
fpvandoorn Jun 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Mathlib.lean
Original file line number Diff line number Diff line change
Expand Up @@ -3047,6 +3047,7 @@ import Mathlib.MeasureTheory.Integral.Pi
import Mathlib.MeasureTheory.Integral.RieszMarkovKakutani
import Mathlib.MeasureTheory.Integral.SetIntegral
import Mathlib.MeasureTheory.Integral.SetToL1
import Mathlib.MeasureTheory.Integral.SobolevInequality
import Mathlib.MeasureTheory.Integral.TorusIntegral
import Mathlib.MeasureTheory.Integral.VitaliCaratheodory
import Mathlib.MeasureTheory.MeasurableSpace.Basic
Expand Down
10 changes: 5 additions & 5 deletions Mathlib/Analysis/Calculus/FDeriv/Measurable.lean
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ theorem measurableSet_of_differentiableAt : MeasurableSet { x | DifferentiableAt
simp
#align measurable_set_of_differentiable_at measurableSet_of_differentiableAt

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

@[measurability]
@[measurability, fun_prop]
theorem measurable_fderiv_apply_const [MeasurableSpace F] [BorelSpace F] (y : E) :
Measurable fun x => fderiv 𝕜 f x y :=
(ContinuousLinearMap.measurable_apply y).comp (measurable_fderiv 𝕜 f)
#align measurable_fderiv_apply_const measurable_fderiv_apply_const

variable {𝕜}

@[measurability]
@[measurability, fun_prop]
theorem measurable_deriv [MeasurableSpace 𝕜] [OpensMeasurableSpace 𝕜] [MeasurableSpace F]
[BorelSpace F] (f : 𝕜 → F) : Measurable (deriv f) := by
simpa only [fderiv_deriv] using measurable_fderiv_apply_const 𝕜 f 1
Expand Down Expand Up @@ -747,7 +747,7 @@ theorem measurableSet_of_differentiableWithinAt_Ici :
simp
#align measurable_set_of_differentiable_within_at_Ici measurableSet_of_differentiableWithinAt_Ici

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

@[measurability]
@[measurability, fun_prop]
theorem measurable_derivWithin_Ioi [MeasurableSpace F] [BorelSpace F] :
Measurable fun x => derivWithin f (Ioi x) x := by
simpa [derivWithin_Ioi_eq_Ici] using measurable_derivWithin_Ici f
Expand Down
10 changes: 10 additions & 0 deletions Mathlib/MeasureTheory/Function/LpSpace.lean
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Mathlib.MeasureTheory.Function.LpSeminorm.ChebyshevMarkov
import Mathlib.MeasureTheory.Function.LpSeminorm.CompareExp
import Mathlib.MeasureTheory.Function.LpSeminorm.TriangleInequality
import Mathlib.MeasureTheory.Measure.OpenPos
import Mathlib.MeasureTheory.Measure.Typeclasses
import Mathlib.Analysis.NormedSpace.OperatorNorm.NormedSpace
import Mathlib.Topology.ContinuousFunction.Compact
import Mathlib.Order.Filter.IndicatorFunction
Expand Down Expand Up @@ -672,6 +673,15 @@ theorem memℒp_indicator_iff_restrict (hs : MeasurableSet s) :
simp [Memℒp, aestronglyMeasurable_indicator_iff hs, snorm_indicator_eq_snorm_restrict hs]
#align measure_theory.mem_ℒp_indicator_iff_restrict MeasureTheory.memℒp_indicator_iff_restrict

/-- For a function `f` with support in `s`, the Lᵖ norms of `f` with respect to `μ` and
`μ.restrict s` are the same. -/
theorem snorm_restrict_eq [SFinite μ] {s : Set α} (hsf : f.support ⊆ s) :
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In fact I think it's possible to get rid also of the SFinite condition, but I'll do that after this PR is merged.

snorm f p (μ.restrict s) = snorm f p μ := by
replace hsf := hsf.trans <| subset_toMeasurable μ s
simp_rw [Function.support_subset_iff', ← Set.indicator_apply_eq_self] at hsf
simp_rw [← μ.restrict_toMeasurable_of_sFinite s,
← snorm_indicator_eq_snorm_restrict (measurableSet_toMeasurable μ s), funext hsf]

/-- If a function is supported on a finite-measure set and belongs to `ℒ^p`, then it belongs to
`ℒ^q` for any `q ≤ p`. -/
theorem Memℒp.memℒp_of_exponent_le_of_measure_support_ne_top
Expand Down
Loading
Loading