diff --git a/Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean b/Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean index e0a122dd1bc6d0..38ab3d89344b00 100644 --- a/Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean +++ b/Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean @@ -278,12 +278,8 @@ lemma eLpNorm'_mono_enorm_ae {f : α → ε} {g : α → ε'} (hq : 0 ≤ q) (h gcongr lemma eLpNorm'_mono_nnnorm_ae {f : α → F} {g : α → G} (hq : 0 ≤ q) (h : ∀ᵐ x ∂μ, ‖f x‖₊ ≤ ‖g x‖₊) : - eLpNorm' f q μ ≤ eLpNorm' g q μ := by - simp only [eLpNorm'_eq_lintegral_enorm] - gcongr ?_ ^ (1 / q) - refine lintegral_mono_ae (h.mono fun x hx => ?_) - dsimp [enorm] - gcongr + eLpNorm' f q μ ≤ eLpNorm' g q μ := + eLpNorm'_mono_enorm_ae hq <| h.mono fun _ hx ↦ ENNReal.coe_le_coe.mpr hx theorem eLpNorm'_mono_ae {f : α → F} {g : α → G} (hq : 0 ≤ q) (h : ∀ᵐ x ∂μ, ‖f x‖ ≤ ‖g x‖) : eLpNorm' f q μ ≤ eLpNorm' g q μ := @@ -327,12 +323,8 @@ theorem eLpNorm_mono_enorm_ae {f : α → ε} {g : α → ε'} (h : ∀ᵐ x ∂ · exact eLpNorm'_mono_enorm_ae ENNReal.toReal_nonneg h theorem eLpNorm_mono_nnnorm_ae {f : α → F} {g : α → G} (h : ∀ᵐ x ∂μ, ‖f x‖₊ ≤ ‖g x‖₊) : - eLpNorm f p μ ≤ eLpNorm g p μ := by - simp only [eLpNorm] - split_ifs - · exact le_rfl - · exact essSup_mono_ae (h.mono fun x hx => ENNReal.coe_le_coe.mpr hx) - · exact eLpNorm'_mono_nnnorm_ae ENNReal.toReal_nonneg h + eLpNorm f p μ ≤ eLpNorm g p μ := + eLpNorm_mono_enorm_ae <| h.mono fun _ hx ↦ ENNReal.coe_le_coe.mpr hx theorem eLpNorm_mono_ae {f : α → F} {g : α → G} (h : ∀ᵐ x ∂μ, ‖f x‖ ≤ ‖g x‖) : eLpNorm f p μ ≤ eLpNorm g p μ := @@ -401,13 +393,9 @@ theorem eLpNorm_le_of_ae_enorm_bound {ε} [TopologicalSpace ε] [ESeminormedAddM theorem eLpNorm_le_of_ae_nnnorm_bound {f : α → F} {C : ℝ≥0} (hfC : ∀ᵐ x ∂μ, ‖f x‖₊ ≤ C) : eLpNorm f p μ ≤ C • μ Set.univ ^ p.toReal⁻¹ := by - rcases eq_zero_or_neZero μ with rfl | hμ - · simp - by_cases hp : p = 0 - · simp [hp] - have : ∀ᵐ x ∂μ, ‖f x‖₊ ≤ ‖(C : ℝ)‖₊ := hfC.mono fun x hx => hx.trans_eq C.nnnorm_eq.symm - refine (eLpNorm_mono_ae this).trans_eq ?_ - rw [eLpNorm_const _ hp (NeZero.ne μ), C.enorm_eq, one_div, ENNReal.smul_def, smul_eq_mul] + have : eLpNorm f p μ ≤ C • μ Set.univ ^ p.toReal⁻¹ := + eLpNorm_le_of_ae_enorm_bound (hfC.mono fun _ hx ↦ enorm_le_coe.mpr hx) + simpa [C.enorm_eq] theorem eLpNorm_le_of_ae_bound {f : α → F} {C : ℝ} (hfC : ∀ᵐ x ∂μ, ‖f x‖ ≤ C) : eLpNorm f p μ ≤ μ Set.univ ^ p.toReal⁻¹ * ENNReal.ofReal C := by diff --git a/Mathlib/MeasureTheory/Function/SimpleFunc.lean b/Mathlib/MeasureTheory/Function/SimpleFunc.lean index 91bbff2ab208d1..d1f82cbcf13532 100644 --- a/Mathlib/MeasureTheory/Function/SimpleFunc.lean +++ b/Mathlib/MeasureTheory/Function/SimpleFunc.lean @@ -1326,51 +1326,15 @@ protected theorem induction' {α γ} [MeasurableSpace α] [Nonempty γ] {P : Sim measurable. -/ theorem _root_.Measurable.add_simpleFunc {E : Type*} {_ : MeasurableSpace α} [MeasurableSpace E] [AddCancelMonoid E] [MeasurableAdd E] - {g : α → E} (hg : Measurable g) (f : SimpleFunc α E) : - Measurable (g + (f : α → E)) := by - classical - induction f using SimpleFunc.induction with - | @const c s hs => - simp only [SimpleFunc.const_zero, SimpleFunc.coe_piecewise, SimpleFunc.coe_const, - SimpleFunc.coe_zero] - rw [← s.piecewise_same g, ← piecewise_add] - exact Measurable.piecewise hs (hg.add_const _) (hg.add_const _) - | @add f f' hff' hf hf' => - have : (g + ↑(f + f')) = (Function.support f).piecewise (g + (f : α → E)) (g + f') := by - ext x - by_cases hx : x ∈ Function.support f - · simpa only [SimpleFunc.coe_add, Pi.add_apply, Function.mem_support, ne_eq, not_not, - Set.piecewise_eq_of_mem _ _ _ hx, _root_.add_right_inj, add_eq_left] - using Set.disjoint_left.1 hff' hx - · simpa only [SimpleFunc.coe_add, Pi.add_apply, Function.mem_support, ne_eq, not_not, - Set.piecewise_eq_of_notMem _ _ _ hx, _root_.add_right_inj, add_eq_right] using hx - rw [this] - exact Measurable.piecewise f.measurableSet_support hf hf' + {g : α → E} (hg : Measurable g) (f : SimpleFunc α E) : Measurable (g + (f : α → E)) := + f.measurable_bind (fun b a ↦ g a + b) fun b ↦ hg.add_const b /-- In a topological vector space, the addition of a simple function and a measurable function is measurable. -/ theorem _root_.Measurable.simpleFunc_add {E : Type*} {_ : MeasurableSpace α} [MeasurableSpace E] [AddCancelMonoid E] [MeasurableAdd E] - {g : α → E} (hg : Measurable g) (f : SimpleFunc α E) : - Measurable ((f : α → E) + g) := by - classical - induction f using SimpleFunc.induction with - | @const c s hs => - simp only [SimpleFunc.const_zero, SimpleFunc.coe_piecewise, SimpleFunc.coe_const, - SimpleFunc.coe_zero] - rw [← s.piecewise_same g, ← piecewise_add] - exact Measurable.piecewise hs (hg.const_add _) (hg.const_add _) - | @add f f' hff' hf hf' => - have : (↑(f + f') + g) = (Function.support f).piecewise ((f : α → E) + g) (f' + g) := by - ext x - by_cases hx : x ∈ Function.support f - · simpa only [coe_add, Pi.add_apply, Function.mem_support, ne_eq, not_not, - Set.piecewise_eq_of_mem _ _ _ hx, _root_.add_left_inj, add_eq_left] - using Set.disjoint_left.1 hff' hx - · simpa only [SimpleFunc.coe_add, Pi.add_apply, Function.mem_support, ne_eq, not_not, - Set.piecewise_eq_of_notMem _ _ _ hx, _root_.add_left_inj, add_eq_right] using hx - rw [this] - exact Measurable.piecewise f.measurableSet_support hf hf' + {g : α → E} (hg : Measurable g) (f : SimpleFunc α E) : Measurable ((f : α → E) + g) := + f.measurable_bind (fun b a => b + g a) fun b => hg.const_add b end SimpleFunc