|
| 1 | +/- |
| 2 | +Copyright (c) 2024 Jireh Loreaux. All rights reserved. |
| 3 | +Released under Apache 2.0 license as described in the file LICENSE. |
| 4 | +Authors: Jireh Loreaux |
| 5 | +-/ |
| 6 | +import Mathlib.Algebra.Algebra.Unitization |
| 7 | +import Mathlib.Analysis.NormedSpace.ProdLp |
| 8 | + |
| 9 | +/-! # Unitization equipped with the $L^1$ norm |
| 10 | +
|
| 11 | +In another file, the `Unitization π A` of a non-unital normed `π`-algebra `A` is equipped with the |
| 12 | +norm inherited as the pullback via a map (closely related to) the left-regular representation of the |
| 13 | +algebra on itself (see `Unitization.instNormedRing`). |
| 14 | +
|
| 15 | +However, this construction is only valid (and an isometry) when `A` is a `RegularNormedAlgebra`. |
| 16 | +Sometimes it is useful to consider the unitization of a non-unital algebra with the $L^1$ norm |
| 17 | +instead. This file provides that norm on the type synonym `WithLp 1 (Unitization π A)`, along |
| 18 | +with the algebra isomomorphism between `Unitization π A` and `WithLp 1 (Unitization π A)`. |
| 19 | +Note that `TrivSqZeroExt` is also equipped with the $L^1$ norm in the analogous way, but it is |
| 20 | +registered as an instance without the type synonym. |
| 21 | +
|
| 22 | +One application of this is a straightforward proof that the quasispectrum of an element in a |
| 23 | +non-unital Banach algebra is compact, which can be established by passing to the unitization. |
| 24 | +-/ |
| 25 | + |
| 26 | +variable (π A : Type*) [NormedField π] [NonUnitalNormedRing A] |
| 27 | +variable [NormedSpace π A] [IsScalarTower π A A] [SMulCommClass π A A] |
| 28 | + |
| 29 | +namespace WithLp |
| 30 | + |
| 31 | +open Unitization |
| 32 | + |
| 33 | +/-- The natural map between `Unitization π A` and `π Γ A`, transferred to their `WithLp 1` |
| 34 | +synonyms. -/ |
| 35 | +noncomputable def unitization_addEquiv_prod : WithLp 1 (Unitization π A) β+ WithLp 1 (π Γ A) := |
| 36 | + (WithLp.linearEquiv 1 π (Unitization π A)).toAddEquiv.trans <| |
| 37 | + (addEquiv π A).trans (WithLp.linearEquiv 1 π (π Γ A)).symm.toAddEquiv |
| 38 | + |
| 39 | +noncomputable instance instUnitizationNormedAddCommGroup : |
| 40 | + NormedAddCommGroup (WithLp 1 (Unitization π A)) := |
| 41 | + NormedAddCommGroup.induced (WithLp 1 (Unitization π A)) (WithLp 1 (π Γ A)) |
| 42 | + (unitization_addEquiv_prod π A) (AddEquiv.injective _) |
| 43 | + |
| 44 | +/-- Bundle `WithLp.unitization_addEquiv_prod` as a `UniformEquiv`. -/ |
| 45 | +noncomputable def uniformEquiv_unitization_addEquiv_prod : |
| 46 | + WithLp 1 (Unitization π A) βα΅€ WithLp 1 (π Γ A) := |
| 47 | + { unitization_addEquiv_prod π A with |
| 48 | + uniformContinuous_invFun := uniformContinuous_comap' uniformContinuous_id |
| 49 | + uniformContinuous_toFun := uniformContinuous_iff.mpr le_rfl } |
| 50 | + |
| 51 | +instance instCompleteSpace [CompleteSpace π] [CompleteSpace A] : |
| 52 | + CompleteSpace (WithLp 1 (Unitization π A)) := |
| 53 | + completeSpace_congr (uniformEquiv_unitization_addEquiv_prod π A).uniformEmbedding |>.mpr |
| 54 | + CompleteSpace.prod |
| 55 | + |
| 56 | +variable {π A} |
| 57 | + |
| 58 | +open ENNReal in |
| 59 | +lemma unitization_norm_def (x : WithLp 1 (Unitization π A)) : |
| 60 | + βxβ = β(WithLp.equiv 1 _ x).fstβ + β(WithLp.equiv 1 _ x).sndβ := calc |
| 61 | + βxβ = (β(WithLp.equiv 1 _ x).fstβ ^ (1 : ββ₯0β).toReal + |
| 62 | + β(WithLp.equiv 1 _ x).sndβ ^ (1 : ββ₯0β).toReal) ^ (1 / (1 : ββ₯0β).toReal) := |
| 63 | + WithLp.prod_norm_eq_add (by simp : 0 < (1 : ββ₯0β).toReal) _ |
| 64 | + _ = β(WithLp.equiv 1 _ x).fstβ + β(WithLp.equiv 1 _ x).sndβ := by simp |
| 65 | + |
| 66 | +lemma unitization_nnnorm_def (x : WithLp 1 (Unitization π A)) : |
| 67 | + βxββ = β(WithLp.equiv 1 _ x).fstββ + β(WithLp.equiv 1 _ x).sndββ := |
| 68 | + Subtype.ext <| unitization_norm_def x |
| 69 | + |
| 70 | +lemma unitization_norm_inr (x : A) : β(WithLp.equiv 1 (Unitization π A)).symm xβ = βxβ := by |
| 71 | + simp [unitization_norm_def] |
| 72 | + |
| 73 | +lemma unitization_nnnorm_inr (x : A) : β(WithLp.equiv 1 (Unitization π A)).symm xββ = βxββ := by |
| 74 | + simp [unitization_nnnorm_def] |
| 75 | + |
| 76 | +lemma unitization_isometry_inr : |
| 77 | + Isometry (fun x : A β¦ (WithLp.equiv 1 (Unitization π A)).symm x) := |
| 78 | + AddMonoidHomClass.isometry_of_norm |
| 79 | + ((WithLp.linearEquiv 1 π (Unitization π A)).symm.comp <| Unitization.inrHom π A) |
| 80 | + unitization_norm_inr |
| 81 | + |
| 82 | +instance instUnitizationRing : Ring (WithLp 1 (Unitization π A)) := |
| 83 | + inferInstanceAs (Ring (Unitization π A)) |
| 84 | + |
| 85 | +@[simp] |
| 86 | +lemma unitization_mul (x y : WithLp 1 (Unitization π A)) : |
| 87 | + WithLp.equiv 1 _ (x * y) = (WithLp.equiv 1 _ x) * (WithLp.equiv 1 _ y) := |
| 88 | + rfl |
| 89 | + |
| 90 | +instance {R : Type*} [CommSemiring R] [Algebra R π] [DistribMulAction R A] [IsScalarTower R π A] : |
| 91 | + Algebra R (WithLp 1 (Unitization π A)) := |
| 92 | + inferInstanceAs (Algebra R (Unitization π A)) |
| 93 | + |
| 94 | +@[simp] |
| 95 | +lemma unitization_algebraMap (r : π) : |
| 96 | + WithLp.equiv 1 _ (algebraMap π (WithLp 1 (Unitization π A)) r) = |
| 97 | + algebraMap π (Unitization π A) r := |
| 98 | + rfl |
| 99 | + |
| 100 | +/-- `WithLp.equiv` bundled as an algebra isomorphism with `Unitization π A`. -/ |
| 101 | +@[simps!] |
| 102 | +def unitizationAlgEquiv (R : Type*) [CommSemiring R] [Algebra R π] [DistribMulAction R A] |
| 103 | + [IsScalarTower R π A] : WithLp 1 (Unitization π A) ββ[R] Unitization π A := |
| 104 | + { WithLp.equiv 1 (Unitization π A) with |
| 105 | + map_mul' := fun _ _ β¦ rfl |
| 106 | + map_add' := fun _ _ β¦ rfl |
| 107 | + commutes' := fun _ β¦ rfl } |
| 108 | + |
| 109 | +noncomputable instance instUnitizationNormedRing : NormedRing (WithLp 1 (Unitization π A)) where |
| 110 | + dist_eq := dist_eq_norm |
| 111 | + norm_mul x y := by |
| 112 | + simp_rw [unitization_norm_def, add_mul, mul_add, unitization_mul, fst_mul, snd_mul] |
| 113 | + rw [add_assoc, add_assoc] |
| 114 | + gcongr |
| 115 | + Β· exact norm_mul_le _ _ |
| 116 | + Β· apply (norm_add_le _ _).trans |
| 117 | + gcongr |
| 118 | + Β· simp [norm_smul] |
| 119 | + Β· apply (norm_add_le _ _).trans |
| 120 | + gcongr |
| 121 | + Β· simp [norm_smul, mul_comm] |
| 122 | + Β· exact norm_mul_le _ _ |
| 123 | + |
| 124 | +noncomputable instance instUnitizationNormedAlgebra : |
| 125 | + NormedAlgebra π (WithLp 1 (Unitization π A)) where |
| 126 | + norm_smul_le r x := by |
| 127 | + simp_rw [unitization_norm_def, equiv_smul, fst_smul, snd_smul, norm_smul, mul_add] |
| 128 | + exact le_rfl |
| 129 | + |
| 130 | +end WithLp |
0 commit comments