@@ -85,11 +85,15 @@ namespace MeasureTheory
8585variable {α α' ε ε₁ ε₂ ε₃ 𝕜 E E₁ E₂ E₃ : Type *} {m : MeasurableSpace α} {m : MeasurableSpace α'}
8686 {p p' q : ℝ≥0 ∞} {c : ℝ≥0 }
8787 {μ : Measure α} {ν : Measure α'} [NontriviallyNormedField 𝕜]
88- [NormedAddCommGroup E] [NormedSpace 𝕜 E]
89- [NormedAddCommGroup E₁] [NormedSpace 𝕜 E₁]
90- [NormedAddCommGroup E₂] [NormedSpace 𝕜 E₂]
91- [NormedAddCommGroup E₃] [NormedSpace 𝕜 E₃]
92- (L : E₁ →L[𝕜] E₂ →L[𝕜] E₃)
88+ [NormedAddCommGroup E] --[NormedSpace 𝕜 E]
89+ [MulActionWithZero 𝕜 E] [IsBoundedSMul 𝕜 E]
90+ [NormedAddCommGroup E₁] --[NormedSpace 𝕜 E₁]
91+ [MulActionWithZero 𝕜 E₁] [IsBoundedSMul 𝕜 E₁]
92+ [NormedAddCommGroup E₂] --[NormedSpace 𝕜 E₂]
93+ [MulActionWithZero 𝕜 E₂] [IsBoundedSMul 𝕜 E₂]
94+ [NormedAddCommGroup E₃] --[NormedSpace 𝕜 E₃]
95+ [MulActionWithZero 𝕜 E₃] [IsBoundedSMul 𝕜 E₃]
96+ --(L : E₁ →L[ 𝕜 ] E₂ →L[ 𝕜 ] E₃)
9397 {t s x y : ℝ≥0 ∞}
9498 {T : (α → ε₁) → (α' → ε₂)}
9599
@@ -530,9 +534,17 @@ lemma HasBoundedStrongType.hasBoundedWeakType [Zero ε₁] (hp' : 1 ≤ p')
530534 fun f hf h2f h3f ↦
531535 ⟨(h f hf h2f h3f).1 , wnorm_le_eLpNorm (h f hf h2f h3f).1 hp' |>.trans (h f hf h2f h3f).2 ⟩
532536
533- section distribution
537+ end ContinuousENorm
538+
539+ section NormedGroup
540+
541+ -- todo: generalize various results to ENorm.
534542
535543variable {f g : α → ε}
544+ section
545+ variable [TopologicalSpace ε] [ContinuousENorm ε]
546+
547+ lemma distribution_eq_nnnorm {f : α → E} : distribution f t μ = μ { x | t < ‖f x‖₊ } := rfl
536548
537549@[gcongr]
538550lemma distribution_mono_left (h : ∀ᵐ x ∂μ, ‖f x‖ₑ ≤ ‖g x‖ₑ) :
@@ -554,43 +566,22 @@ lemma distribution_mono (h₁ : ∀ᵐ x ∂μ, ‖f x‖ₑ ≤ ‖g x‖ₑ) (
554566lemma distribution_snormEssSup : distribution f (eLpNormEssSup f μ) μ = 0 :=
555567 meas_essSup_lt -- meas_eLpNormEssSup_lt
556568
569+ lemma distribution_smul_left {f : α → E} {c : 𝕜} (hc : c ≠ 0 ) :
570+ distribution (c • f) t μ = distribution f (t / ‖c‖₊) μ := by
571+ simp_rw [distribution_eq_nnnorm]
572+ have h₀ : ofNNReal ‖c‖₊ ≠ 0 := ENNReal.coe_ne_zero.mpr (nnnorm_ne_zero_iff.mpr hc)
573+ congr with x
574+ simp only [Pi.smul_apply, mem_setOf_eq]
575+ rw [← @ENNReal.mul_lt_mul_right (t / ‖c‖₊) _ (‖c‖₊) h₀ coe_ne_top, nnnorm_smul, mul_comm,
576+ ENNReal.div_mul_cancel h₀ coe_ne_top]
577+ simp
578+
557579lemma distribution_add_le' {A : ℝ≥0 ∞} {g₁ g₂ : α → ε}
558580 (h : ∀ᵐ x ∂μ, ‖f x‖ₑ ≤ A * (‖g₁ x‖ₑ + ‖g₂ x‖ₑ)) :
559581 distribution f (A * (t + s)) μ ≤ distribution g₁ t μ + distribution g₂ s μ := by
560582 apply distribution_add_le_of_enorm
561583 simp (discharger := positivity) [← ofReal_mul, ← ofReal_add, h]
562584
563- lemma distribution_add_le {ε} [TopologicalSpace ε] [ENormedAddMonoid ε] {f g : α → ε} :
564- distribution (f + g) (t + s) μ ≤ distribution f t μ + distribution g s μ :=
565- calc
566- _ ≤ μ ({x | t < ‖f x‖ₑ} ∪ {x | s < ‖g x‖ₑ}) := by
567- refine measure_mono fun x h ↦ ?_
568- simp only [mem_union, mem_setOf_eq, Pi.add_apply] at h ⊢
569- contrapose! h
570- exact (ENormedAddMonoid.enorm_add_le _ _).trans (add_le_add h.1 h.2 )
571- _ ≤ _ := measure_union_le _ _
572-
573- end distribution
574-
575- end ContinuousENorm
576-
577- section NormedGroup
578-
579- variable {f g : α → ε}
580- section
581- variable [TopologicalSpace ε] [ContinuousENorm ε]
582-
583- -- TODO: add an analogue for the ENorm context, using scalar multiplication w.r.t. `NNReal` on an `ENormedSpace`
584-
585- lemma distribution_smul_left {f : α → E} {c : 𝕜} (hc : c ≠ 0 ) :
586- distribution (c • f) t μ = distribution f (t / ‖c‖ₑ) μ := by
587- have h₀ : ‖c‖ₑ ≠ 0 := enorm_ne_zero.mpr hc
588- unfold distribution
589- congr with x
590- simp only [Pi.smul_apply, mem_setOf_eq]
591- rw [← @ENNReal.mul_lt_mul_right (t / ‖c‖ₑ) _ (‖c‖ₑ) h₀ coe_ne_top,
592- enorm_absolute_homogeneous _, mul_comm, ENNReal.div_mul_cancel h₀ coe_ne_top]
593-
594585lemma HasStrongType.const_smul {𝕜 E' α α' : Type *} [NormedAddCommGroup E']
595586 {_x : MeasurableSpace α} {_x' : MeasurableSpace α'} {T : (α → ε) → (α' → E')}
596587 {p p' : ℝ≥0 ∞} {μ : Measure α} {ν : Measure α'} {c : ℝ≥0 } (h : HasStrongType T p p' μ ν c)
@@ -607,25 +598,74 @@ lemma HasStrongType.const_mul {E' α α' : Type*} [NormedRing E']
607598 HasStrongType (fun f x ↦ e * T f x) p p' μ ν (‖e‖₊ * c) :=
608599 h.const_smul e
609600
601+ lemma wnorm_const_smul_le {𝕜 E α : Type *} [NormedAddCommGroup E] {_x : MeasurableSpace α}
602+ {p : ℝ≥0 ∞} (hp : p ≠ 0 ) {μ : Measure α} {f : α → E}
603+ [NontriviallyNormedField 𝕜] [MulActionWithZero 𝕜 E] [IsBoundedSMul 𝕜 E] (k : 𝕜) :
604+ wnorm (k • f) p μ ≤ ‖k‖₊ * wnorm f p μ := by
605+ unfold wnorm
606+ by_cases ptop : p = ⊤
607+ · simp [ptop]
608+ apply eLpNormEssSup_const_smul_le
609+ simp [ptop]
610+ unfold wnorm'
611+ by_cases k_zero : k = 0
612+ · unfold distribution
613+ simp [k_zero]
614+ intro _
615+ right
616+ exact toReal_pos hp ptop
617+ simp [distribution_smul_left k_zero]
618+ intro t
619+ rw [ENNReal.mul_iSup]
620+ have knorm_ne_zero : ‖k‖₊ ≠ 0 := nnnorm_ne_zero_iff.mpr k_zero
621+ have : ↑t * distribution f (↑t / ↑‖k‖₊) μ ^ p.toReal⁻¹ =
622+ ↑‖k‖₊ * ((↑t / ↑‖k‖₊) * distribution f (↑t / ↑‖k‖₊) μ ^ p.toReal⁻¹) := by
623+ nth_rewrite 1 [← mul_div_cancel₀ t knorm_ne_zero]
624+ simp [mul_assoc]
625+ congr
626+ exact coe_div knorm_ne_zero
627+ rw [this]
628+ apply le_iSup_of_le (↑t / ↑‖k‖₊)
629+ apply le_of_eq
630+ congr <;> exact (coe_div knorm_ne_zero).symm
610631
611632lemma HasWeakType.const_smul {𝕜 E' α α' : Type *} [NormedAddCommGroup E']
612633 {_x : MeasurableSpace α} {_x' : MeasurableSpace α'} {T : (α → ε) → (α' → E')}
613- {p p' : ℝ≥0 ∞} {μ : Measure α} {ν : Measure α'} {c : ℝ≥0 } (h : HasWeakType T p p' μ ν c)
614- [NormedRing 𝕜] [MulActionWithZero 𝕜 E'] [IsBoundedSMul 𝕜 E'] (k : 𝕜) :
615- HasWeakType (k • T) p p' μ ν (‖k‖₊ * c) := by
634+ {p p' : ℝ≥0 ∞} (hp' : p' ≠ 0 ) {μ : Measure α} {ν : Measure α'} {c : ℝ≥0 }
635+ (h : HasWeakType T p p' μ ν c) [NontriviallyNormedField 𝕜] [MulActionWithZero 𝕜 E']
636+ [IsBoundedSMul 𝕜 E'] (k : 𝕜) : HasWeakType (k • T) p p' μ ν (‖k‖₊ * c) := by
616637 intro f hf
617638 refine ⟨aestronglyMeasurable_const.smul (h f hf).1 , ?_⟩
618- sorry
639+ calc
640+ wnorm ((k • T) f) p' ν ≤ ↑‖k‖₊ * wnorm (T f) p' ν := by simp[wnorm_const_smul_le hp']
641+ _ ≤ ↑‖k‖₊ * (c * eLpNorm f p μ) := by
642+ gcongr
643+ apply (h f hf).2
644+ _ = ↑(‖k‖₊ * c) * eLpNorm f p μ := by simp [coe_mul, mul_assoc]
619645
620- lemma HasWeakType.const_mul {E' α α' : Type *} [NormedRing E']
646+
647+ lemma HasWeakType.const_mul {E' α α' : Type *} [NontriviallyNormedField E']
621648 {_x : MeasurableSpace α} {_x' : MeasurableSpace α'} {T : (α → ε) → (α' → E')} {p p' : ℝ≥0 ∞}
622- {μ : Measure α} {ν : Measure α'} {c : ℝ≥0 } (h : HasWeakType T p p' μ ν c) (e : E') :
649+ (hp' : p' ≠ 0 ) {μ : Measure α} {ν : Measure α'} {c : ℝ≥0 } (h : HasWeakType T p p' μ ν c) (e : E') :
623650 HasWeakType (fun f x ↦ e * T f x) p p' μ ν (‖e‖₊ * c) :=
624- h.const_smul e
625-
651+ h.const_smul hp' e
626652
627653end
628654
655+ lemma distribution_add_le [TopologicalSpace ε] [ENormedAddMonoid ε] :
656+ distribution (f + g) (t + s) μ ≤ distribution f t μ + distribution g s μ :=
657+ calc
658+ _ ≤ μ ({x | t < ↑‖f x‖ₑ} ∪ {x | s < ↑‖g x‖ₑ}) := by
659+ refine measure_mono fun x h ↦ ?_
660+ simp only [mem_union, mem_setOf_eq, Pi.add_apply] at h ⊢
661+ contrapose! h
662+ exact (ENormedAddMonoid.enorm_add_le _ _).trans (add_le_add h.1 h.2 )
663+ _ ≤ _ := measure_union_le _ _
664+
665+ variable [NormedSpace 𝕜 E] [NormedSpace 𝕜 E₁] [NormedSpace 𝕜 E₂] [NormedSpace 𝕜 E₃]
666+ (L : E₁ →L[𝕜] E₂ →L[𝕜] E₃)
667+
668+ -- TODO: reorganize variables so that everything makes sense
629669lemma _root_.ContinuousLinearMap.distribution_le {f : α → E₁} {g : α → E₂} :
630670 distribution (fun x ↦ L (f x) (g x)) (‖L‖ₑ * t * s) μ ≤
631671 distribution f t μ + distribution g s μ := by
0 commit comments