Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit ce79a27

Browse files
committed
feat(analysis/normed_space/pi_Lp): add lemmas about pi_Lp.equiv (#13569)
Most of these are trivial `dsimp` lemmas, but they also let us talk about the norm of constant vectors.
1 parent e561264 commit ce79a27

File tree

1 file changed

+46
-2
lines changed

1 file changed

+46
-2
lines changed

src/analysis/normed_space/pi_Lp.lean

Lines changed: 46 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ to compare the `L^p` and `L^∞` distances through it. -/
8383
protected def equiv : pi_Lp p α ≃ Π (i : ι), α i :=
8484
equiv.refl _
8585

86+
@[simp] lemma equiv_apply (x : pi_Lp p α) (i : ι) : pi_Lp.equiv p α x i = x i := rfl
87+
@[simp] lemma equiv_symm_apply (x : Π i, α i) (i : ι) : (pi_Lp.equiv p α).symm x i = x i := rfl
88+
8689
section
8790
/-!
8891
### The uniformity on finite `L^p` products is the product uniformity
@@ -314,12 +317,53 @@ instance normed_space [∀i, semi_normed_group (β i)] [∀i, normed_space 𝕜
314317

315318
/- Register simplification lemmas for the applications of `pi_Lp` elements, as the usual lemmas
316319
for Pi types will not trigger. -/
317-
variables {𝕜 p α}
318-
[∀i, semi_normed_group (β i)] [∀i, normed_space 𝕜 (β i)] (c : 𝕜) (x y : pi_Lp p β) (i : ι)
320+
variables {𝕜 p α} [Π i, semi_normed_group (β i)] [Π i, normed_space 𝕜 (β i)] (c : 𝕜)
321+
variables (x y : pi_Lp p β) (x' y' : Π i, β i) (i : ι)
319322

323+
@[simp] lemma zero_apply : (0 : pi_Lp p β) i = 0 := rfl
320324
@[simp] lemma add_apply : (x + y) i = x i + y i := rfl
321325
@[simp] lemma sub_apply : (x - y) i = x i - y i := rfl
322326
@[simp] lemma smul_apply : (c • x) i = c • x i := rfl
323327
@[simp] lemma neg_apply : (-x) i = - (x i) := rfl
324328

329+
@[simp] lemma equiv_zero : pi_Lp.equiv p β 0 = 0 := rfl
330+
@[simp] lemma equiv_symm_zero : (pi_Lp.equiv p β).symm 0 = 0 := rfl
331+
332+
@[simp] lemma equiv_add :
333+
pi_Lp.equiv p β (x + y) = pi_Lp.equiv p β x + pi_Lp.equiv p β y := rfl
334+
@[simp] lemma equiv_symm_add :
335+
(pi_Lp.equiv p β).symm (x' + y') = (pi_Lp.equiv p β).symm x' + (pi_Lp.equiv p β).symm y' := rfl
336+
337+
@[simp] lemma equiv_sub : pi_Lp.equiv p β (x - y) = pi_Lp.equiv p β x - pi_Lp.equiv p β y := rfl
338+
@[simp] lemma equiv_symm_sub :
339+
(pi_Lp.equiv p β).symm (x' - y') = (pi_Lp.equiv p β).symm x' - (pi_Lp.equiv p β).symm y' := rfl
340+
341+
@[simp] lemma equiv_neg : pi_Lp.equiv p β (-x) = -pi_Lp.equiv p β x := rfl
342+
@[simp] lemma equiv_symm_neg : (pi_Lp.equiv p β).symm (-x') = -(pi_Lp.equiv p β).symm x' := rfl
343+
344+
@[simp] lemma equiv_smul : pi_Lp.equiv p β (c • x) = c • pi_Lp.equiv p β x := rfl
345+
@[simp] lemma equiv_symm_smul :
346+
(pi_Lp.equiv p β).symm (c • x') = c • (pi_Lp.equiv p β).symm x' := rfl
347+
348+
lemma nnnorm_equiv_symm_const {β} [semi_normed_group β] (b : β) :
349+
∥(pi_Lp.equiv p (λ _ : ι, β)).symm (function.const _ b)∥₊ = fintype.card ι ^ (1 / p) * ∥b∥₊ :=
350+
begin
351+
have : p ≠ 0 := (zero_lt_one.trans_le (fact.out $ 1 ≤ p)).ne',
352+
simp_rw [pi_Lp.nnnorm_eq, equiv_symm_apply, function.const_apply, finset.sum_const,
353+
finset.card_univ, nsmul_eq_mul, nnreal.mul_rpow, ←nnreal.rpow_mul, mul_one_div_cancel this,
354+
nnreal.rpow_one],
355+
end
356+
357+
lemma norm_equiv_symm_const {β} [semi_normed_group β] (b : β) :
358+
∥(pi_Lp.equiv p (λ _ : ι, β)).symm (function.const _ b)∥ = fintype.card ι ^ (1 / p) * ∥b∥ :=
359+
(congr_arg coe $ nnnorm_equiv_symm_const b).trans $ by simp
360+
361+
lemma nnnorm_equiv_symm_one {β} [semi_normed_group β] [has_one β] :
362+
∥(pi_Lp.equiv p (λ _ : ι, β)).symm 1∥₊ = fintype.card ι ^ (1 / p) * ∥(1 : β)∥₊ :=
363+
(nnnorm_equiv_symm_const (1 : β)).trans rfl
364+
365+
lemma norm_equiv_symm_one {β} [semi_normed_group β] [has_one β] :
366+
∥(pi_Lp.equiv p (λ _ : ι, β)).symm 1∥ = fintype.card ι ^ (1 / p) * ∥(1 : β)∥ :=
367+
(norm_equiv_symm_const (1 : β)).trans rfl
368+
325369
end pi_Lp

0 commit comments

Comments
 (0)