@@ -502,26 +502,23 @@ theorem inner_le_Lp_mul_Lq (f g : ι → ℝ≥0) {p q : ℝ} (hpq : p.HolderCon
502502 · simp_rw [g', div_rpow, ← sum_div, ← rpow_mul, one_div, inv_mul_cancel₀ hpq.symm.ne_zero,
503503 rpow_one, div_self hg.ne']
504504
505- /-- **Hölder inequality** : The (`r`-power of the) `L^r` norm of two functions is bounded by the
506- product of (the `r`-powers of) their `L^p` and `L^q` norms when `p`, `q`, and `r` form a
507- `Real.HolderTriple`. -/
505+ /-- **Hölder inequality** : The (`r`-power of the) `L^r` norm of the product of two functions is
506+ bounded by the product of (the `r`-powers of) their `L^p` and `L^q` norms when `p`, `q`, and `r`
507+ form a `Real.HolderTriple`. -/
508508theorem Lr_rpow_le_Lp_mul_Lq (f g : ι → ℝ≥0 ) {p q r : ℝ} (hpqr : p.HolderTriple q r) :
509509 ∑ i ∈ s, (f i * g i) ^ r ≤ (∑ i ∈ s, f i ^ p) ^ (r / p) * (∑ i ∈ s, g i ^ q) ^ (r / q) := by
510- have := hpqr.holderConjugate_div_div
511- have hp := hpqr.pos
512- have hq := hpqr.symm.pos
513- have hr := hpqr.pos'
514- calc ∑ i ∈ s, (f i * g i) ^ r
515- _ = ∑ i ∈ s, (f i) ^ r * (g i) ^ r := s.sum_congr rfl fun i hi ↦ mul_rpow ..
516- _ ≤ (∑ i ∈ s, f i ^ p) ^ (r / p) * (∑ i ∈ s, g i ^ q) ^ (r / q) := by
517- apply inner_le_Lp_mul_Lq s _ _ this |>.trans_eq
518- congr! 2
519- all_goals try simp only [fieldEq]
520- all_goals
521- refine s.sum_congr rfl fun i hi ↦ by simp [← rpow_mul, ← mul_div_assoc, hr.ne']
522-
523- /-- **Hölder inequality** : The `L^r` norm of two functions is bounded by the
524- product of their `L^p` and `L^q` norms when `p`, `q`, and `r` form a `Real.HolderTriple`. -/
510+ have := hpqr.holderConjugate_div_div
511+ calc ∑ i ∈ s, (f i * g i) ^ r
512+ _ = ∑ i ∈ s, (f i) ^ r * (g i) ^ r := s.sum_congr rfl fun i hi ↦ mul_rpow ..
513+ _ ≤ (∑ i ∈ s, f i ^ p) ^ (r / p) * (∑ i ∈ s, g i ^ q) ^ (r / q) := by
514+ apply inner_le_Lp_mul_Lq s _ _ this |>.trans_eq
515+ congr! 2
516+ all_goals try simp only [fieldEq]
517+ all_goals
518+ refine s.sum_congr rfl fun i hi ↦ by simp [← rpow_mul, ← mul_div_assoc, hpqr.pos'.ne']
519+
520+ /-- **Hölder inequality** : The `L^r` norm of the product of two functions is bounded by the
521+ product of their `L^p` and `L^q` norms when `p`, `q`, and `r` form a `Real.HolderTriple`. -/
525522theorem Lr_le_Lp_mul_Lq (f g : ι → ℝ≥0 ) {p q r : ℝ} (hpqr : p.HolderTriple q r) :
526523 (∑ i ∈ s, (f i * g i) ^ r) ^ (1 / r) ≤
527524 (∑ i ∈ s, f i ^ p) ^ (1 / p) * (∑ i ∈ s, g i ^ q) ^ (1 / q) := by
@@ -549,10 +546,10 @@ lemma inner_le_weight_mul_Lp (s : Finset ι) {p : ℝ} (hp : 1 ≤ p) (w f : ι
549546 have hp₁ : 1 - p⁻¹ ≠ 0 := by simp [sub_eq_zero, hp.ne']
550547 simp [mul_rpow, div_inv_eq_mul, one_mul, one_div, hp₀, hp₁]
551548
552- /-- **Hölder inequality** : The (`r`-power of the) `L^r` norm of two functions is bounded by the
553- product of (the `r`-powers of) their `L^p` and `L^q` norms when `p`, `q`, and `r` form a
554- `Real.HolderTriple`. A version for `NNReal`-valued functions. For an alternative version,
555- convenient if the infinite sums are already expressed as powers, see `inner_le_Lp_mul_Lq_hasSum`. -/
549+ /-- **Hölder inequality** : The (`r`-power of the) `L^r` norm of the product of two functions is
550+ bounded by the product of (the `r`-powers of) their `L^p` and `L^q` norms when `p`, `q`, and `r`
551+ form a `Real.HolderTriple`. A version for `NNReal`-valued functions. For an alternative version,
552+ convenient if the infinite sums are already expressed as powers, see `inner_le_Lp_mul_Lq_hasSum`. -/
556553theorem summable_and_Lr_rpow_le_Lp_mul_Lq_tsum {f g : ι → ℝ≥0 } {p q r : ℝ}
557554 (hpqr : p.HolderTriple q r) (hf : Summable fun i => f i ^ p) (hg : Summable fun i => g i ^ q) :
558555 (Summable fun i => (f i * g i) ^ r) ∧
@@ -875,13 +872,13 @@ theorem Lr_le_Lp_mul_Lq_tsum_of_nonneg (hpqr : p.HolderTriple q r) (hf : ∀ i,
875872 -- It's really inconvenient that `positivity` can't use `∀` hypotheses.
876873 have hf' : 0 ≤ ∑' i, f i ^ p := tsum_nonneg fun i ↦ rpow_nonneg (hf i) p
877874 have hg' : 0 ≤ ∑' i, g i ^ q := tsum_nonneg fun i ↦ rpow_nonneg (hg i) q
878- obtain ⟨hp, hq, hr⟩ := hpqr.all_pos
879- convert rpow_le_rpow_iff (tsum_nonneg fun i ↦ rpow_nonneg (mul_nonneg (hf i) (hg i)) r)
880- (by apply mul_nonneg; all_goals apply rpow_nonneg; assumption)
881- (inv_eq_one_div r ▸ inv_pos.mpr hpqr.pos' ) |>.mpr <|
882- Lr_rpow_le_Lp_mul_Lq_tsum_of_nonneg hpqr hf hg hf_sum hg_sum using 1
883- rw [mul_rpow (rpow_nonneg hf' _) (rpow_nonneg hg' _), ← Real.rpow_mul hg', ← Real.rpow_mul hf']
884- field_simp
875+ have hr := hpqr.pos'
876+ convert rpow_le_rpow_iff (tsum_nonneg fun i ↦ rpow_nonneg (mul_nonneg (hf i) (hg i)) r)
877+ (by apply mul_nonneg; all_goals apply rpow_nonneg; assumption)
878+ (inv_eq_one_div r ▸ inv_pos.mpr hr ) |>.mpr <|
879+ Lr_rpow_le_Lp_mul_Lq_tsum_of_nonneg hpqr hf hg hf_sum hg_sum using 1
880+ rw [mul_rpow (rpow_nonneg hf' _) (rpow_nonneg hg' _), ← Real.rpow_mul hg', ← Real.rpow_mul hf']
881+ field_simp
885882
886883theorem inner_le_Lp_mul_Lq_tsum_of_nonneg (hpq : p.HolderConjugate q) (hf : ∀ i, 0 ≤ f i)
887884 (hg : ∀ i, 0 ≤ g i) (hf_sum : Summable fun i => f i ^ p) (hg_sum : Summable fun i => g i ^ q) :
0 commit comments