Skip to content

Commit 7183c10

Browse files
Task 134 (#275)
Proved lemmas: `HasWeakType.const_mul` and `HasWeakType.const_smul`. Prove an auxiliary lemma `wnorm_const_smul_le` to do so. #281 will clean up the variable binders. --------- Co-authored-by: grunweg <rothgang@math.uni-bonn.de>
1 parent f24f307 commit 7183c10

File tree

1 file changed

+85
-45
lines changed

1 file changed

+85
-45
lines changed

Carleson/ToMathlib/WeakType.lean

Lines changed: 85 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,15 @@ namespace MeasureTheory
8585
variable {α α' ε ε₁ ε₂ ε₃ 𝕜 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

535543
variable {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]
538550
lemma distribution_mono_left (h : ∀ᵐ x ∂μ, ‖f x‖ₑ ≤ ‖g x‖ₑ) :
@@ -554,43 +566,22 @@ lemma distribution_mono (h₁ : ∀ᵐ x ∂μ, ‖f x‖ₑ ≤ ‖g x‖ₑ) (
554566
lemma 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+
557579
lemma 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-
594585
lemma 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

611632
lemma 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

627653
end
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
629669
lemma _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

Comments
 (0)