Documentation

Mathlib.Analysis.Normed.Group.Constructions

Product of normed groups and other constructions #

This file constructs the infinity norm on finite products of normed groups and provides instances for type synonyms.

PUnit #

ULift #

instance ULift.norm {E : Type u_2} [Norm E] :
Equations
theorem ULift.norm_def {E : Type u_2} [Norm E] (x : ULift.{u_5, u_2} E) :
x = x.down
@[simp]
theorem ULift.norm_up {E : Type u_2} [Norm E] (x : E) :
{ down := x } = x
@[simp]
theorem ULift.norm_down {E : Type u_2} [Norm E] (x : ULift.{u_5, u_2} E) :
x.down = x
instance ULift.nnnorm {E : Type u_2} [NNNorm E] :
Equations
@[simp]
theorem ULift.nnnorm_up {E : Type u_2} [NNNorm E] (x : E) :
{ down := x }‖₊ = x‖₊
@[simp]
theorem ULift.nnnorm_down {E : Type u_2} [NNNorm E] (x : ULift.{u_5, u_2} E) :
Equations
theorem ULift.seminormedAddGroup.proof_3 {E : Type u_2} [SeminormedAddGroup E] :
∀ (x x_1 : ULift.{u_1, u_2} E), { toFun := ULift.down, map_zero' := }.toFun (x + x_1) = { toFun := ULift.down, map_zero' := }.toFun (x + x_1)
Equations
Equations
theorem ULift.seminormedAddCommGroup.proof_3 {E : Type u_2} [SeminormedAddCommGroup E] :
∀ (x x_1 : ULift.{u_1, u_2} E), { toFun := ULift.down, map_zero' := }.toFun (x + x_1) = { toFun := ULift.down, map_zero' := }.toFun (x + x_1)
Equations
Equations
theorem ULift.normedAddGroup.proof_3 {E : Type u_2} [NormedAddGroup E] :
∀ (x x_1 : ULift.{u_1, u_2} E), { toFun := ULift.down, map_zero' := }.toFun (x + x_1) = { toFun := ULift.down, map_zero' := }.toFun (x + x_1)
Equations
theorem ULift.normedAddCommGroup.proof_3 {E : Type u_2} [NormedAddCommGroup E] :
∀ (x x_1 : ULift.{u_1, u_2} E), { toFun := ULift.down, map_zero' := }.toFun (x + x_1) = { toFun := ULift.down, map_zero' := }.toFun (x + x_1)
Equations
Equations

Additive, Multiplicative #

instance Additive.toNorm {E : Type u_2} [Norm E] :
Equations
  • Additive.toNorm = inst
instance Multiplicative.toNorm {E : Type u_2} [Norm E] :
Equations
  • Multiplicative.toNorm = inst
@[simp]
theorem norm_toMul {E : Type u_2} [Norm E] (x : Additive E) :
Additive.toMul x = x
@[simp]
theorem norm_ofMul {E : Type u_2} [Norm E] (x : E) :
Additive.ofMul x = x
@[simp]
theorem norm_toAdd {E : Type u_2} [Norm E] (x : Multiplicative E) :
Multiplicative.toAdd x = x
@[simp]
theorem norm_ofAdd {E : Type u_2} [Norm E] (x : E) :
Multiplicative.ofAdd x = x
instance Additive.toNNNorm {E : Type u_2} [NNNorm E] :
Equations
  • Additive.toNNNorm = inst
Equations
  • Multiplicative.toNNNorm = inst
@[simp]
theorem nnnorm_toMul {E : Type u_2} [NNNorm E] (x : Additive E) :
Additive.toMul x‖₊ = x‖₊
@[simp]
theorem nnnorm_ofMul {E : Type u_2} [NNNorm E] (x : E) :
Additive.ofMul x‖₊ = x‖₊
@[simp]
theorem nnnorm_toAdd {E : Type u_2} [NNNorm E] (x : Multiplicative E) :
Multiplicative.toAdd x‖₊ = x‖₊
@[simp]
theorem nnnorm_ofAdd {E : Type u_2} [NNNorm E] (x : E) :
Multiplicative.ofAdd x‖₊ = x‖₊
Equations
Equations
Equations
Equations
Equations
Equations
  • Multiplicative.normedGroup = let __src := Multiplicative.seminormedGroup; NormedGroup.mk
Equations
Equations
  • Multiplicative.normedCommGroup = let __src := Multiplicative.seminormedGroup; NormedCommGroup.mk

Order dual #

instance OrderDual.toNorm {E : Type u_2} [Norm E] :
Equations
  • OrderDual.toNorm = inst
@[simp]
theorem norm_toDual {E : Type u_2} [Norm E] (x : E) :
OrderDual.toDual x = x
@[simp]
theorem norm_ofDual {E : Type u_2} [Norm E] (x : Eᵒᵈ) :
OrderDual.ofDual x = x
instance OrderDual.toNNNorm {E : Type u_2} [NNNorm E] :
Equations
  • OrderDual.toNNNorm = inst
@[simp]
theorem nnnorm_toDual {E : Type u_2} [NNNorm E] (x : E) :
OrderDual.toDual x‖₊ = x‖₊
@[simp]
theorem nnnorm_ofDual {E : Type u_2} [NNNorm E] (x : Eᵒᵈ) :
OrderDual.ofDual x‖₊ = x‖₊
@[instance 100]
Equations
  • OrderDual.seminormedAddGroup = inst
@[instance 100]
Equations
  • OrderDual.seminormedGroup = inst
@[instance 100]
Equations
  • OrderDual.seminormedAddCommGroup = inst
@[instance 100]
Equations
  • OrderDual.seminormedCommGroup = inst
@[instance 100]
Equations
  • OrderDual.normedAddGroup = inst
@[instance 100]
Equations
  • OrderDual.normedGroup = inst
@[instance 100]
Equations
  • OrderDual.normedAddCommGroup = inst
@[instance 100]
Equations
  • OrderDual.normedCommGroup = inst

Binary product of normed groups #

instance Prod.toNorm {E : Type u_2} {F : Type u_3} [Norm E] [Norm F] :
Norm (E × F)
Equations
theorem Prod.norm_def {E : Type u_2} {F : Type u_3} [Norm E] [Norm F] (x : E × F) :
theorem norm_fst_le {E : Type u_2} {F : Type u_3} [Norm E] [Norm F] (x : E × F) :
theorem norm_snd_le {E : Type u_2} {F : Type u_3} [Norm E] [Norm F] (x : E × F) :
theorem norm_prod_le_iff {E : Type u_2} {F : Type u_3} [Norm E] [Norm F] {x : E × F} {r : } :

Product of seminormed groups, using the sup norm.

Equations
theorem Prod.seminormedAddGroup.proof_1 {E : Type u_1} {F : Type u_2} [SeminormedAddGroup E] [SeminormedAddGroup F] (x : E × F) (y : E × F) :
max (dist x.1 y.1) (dist x.2 y.2) = max x.1 - y.1 x.2 - y.2
instance Prod.seminormedGroup {E : Type u_2} {F : Type u_3} [SeminormedGroup E] [SeminormedGroup F] :

Product of seminormed groups, using the sup norm.

Equations
theorem Prod.nnorm_def {E : Type u_2} {F : Type u_3} [SeminormedGroup E] [SeminormedGroup F] (x : E × F) :

Product of seminormed groups, using the sup norm.

Equations
theorem Prod.seminormedAddCommGroup.proof_2 {E : Type u_1} {F : Type u_2} [SeminormedAddCommGroup E] [SeminormedAddCommGroup F] (x : E × F) (y : E × F) :
dist x y = x - y
theorem Prod.seminormedAddCommGroup.proof_1 {E : Type u_1} {F : Type u_2} [SeminormedAddCommGroup E] [SeminormedAddCommGroup F] (a : E × F) (b : E × F) :
a + b = b + a

Product of seminormed groups, using the sup norm.

Equations
instance Prod.normedAddGroup {E : Type u_2} {F : Type u_3} [NormedAddGroup E] [NormedAddGroup F] :

Product of normed groups, using the sup norm.

Equations
theorem Prod.normedAddGroup.proof_1 {E : Type u_1} {F : Type u_2} [NormedAddGroup E] [NormedAddGroup F] :
∀ {x y : E × F}, dist x y = 0x = y
theorem Prod.normedAddGroup.proof_2 {E : Type u_1} {F : Type u_2} [NormedAddGroup E] [NormedAddGroup F] (x : E × F) (y : E × F) :
dist x y = x - y
instance Prod.normedGroup {E : Type u_2} {F : Type u_3} [NormedGroup E] [NormedGroup F] :

Product of normed groups, using the sup norm.

Equations
theorem Prod.normedAddCommGroup.proof_3 {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedAddCommGroup F] (x : E × F) (y : E × F) :
dist x y = x - y
theorem Prod.normedAddCommGroup.proof_1 {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedAddCommGroup F] (a : E × F) (b : E × F) :
a + b = b + a

Product of normed groups, using the sup norm.

Equations
theorem Prod.normedAddCommGroup.proof_2 {E : Type u_1} {F : Type u_2} [NormedAddCommGroup E] [NormedAddCommGroup F] :
∀ {x y : E × F}, dist x y = 0x = y
instance Prod.normedCommGroup {E : Type u_2} {F : Type u_3} [NormedCommGroup E] [NormedCommGroup F] :

Product of normed groups, using the sup norm.

Equations

Finite product of normed groups #

instance Pi.seminormedAddGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] :
SeminormedAddGroup ((i : ι) → π i)

Finite product of seminormed groups, using the sup norm.

Equations
theorem Pi.seminormedAddGroup.proof_1 {ι : Type u_1} {π : ιType u_2} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (x : (i : ι) → π i) (y : (i : ι) → π i) :
(Finset.univ.sup fun (b : ι) => nndist (x b) (y b)) = (Finset.univ.sup fun (b : ι) => (x - y) b‖₊)
instance Pi.seminormedGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] :
SeminormedGroup ((i : ι) → π i)

Finite product of seminormed groups, using the sup norm.

Equations
theorem Pi.norm_def {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (f : (i : ι) → π i) :
f = (Finset.univ.sup fun (b : ι) => f b‖₊)
theorem Pi.norm_def' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] (f : (i : ι) → π i) :
f = (Finset.univ.sup fun (b : ι) => f b‖₊)
theorem Pi.nnnorm_def {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (f : (i : ι) → π i) :
f‖₊ = Finset.univ.sup fun (b : ι) => f b‖₊
theorem Pi.nnnorm_def' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] (f : (i : ι) → π i) :
f‖₊ = Finset.univ.sup fun (b : ι) => f b‖₊
theorem pi_norm_le_iff_of_nonneg {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] {x : (i : ι) → π i} {r : } (hr : 0 r) :
x r ∀ (i : ι), x i r

The seminorm of an element in a product space is ≤ r if and only if the norm of each component is.

theorem pi_norm_le_iff_of_nonneg' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] {x : (i : ι) → π i} {r : } (hr : 0 r) :
x r ∀ (i : ι), x i r

The seminorm of an element in a product space is ≤ r if and only if the norm of each component is.

theorem pi_nnnorm_le_iff {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] {x : (i : ι) → π i} {r : NNReal} :
x‖₊ r ∀ (i : ι), x i‖₊ r
theorem pi_nnnorm_le_iff' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] {x : (i : ι) → π i} {r : NNReal} :
x‖₊ r ∀ (i : ι), x i‖₊ r
theorem pi_norm_le_iff_of_nonempty {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (f : (i : ι) → π i) {r : } [Nonempty ι] :
f r ∀ (b : ι), f b r
theorem pi_norm_le_iff_of_nonempty' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] (f : (i : ι) → π i) {r : } [Nonempty ι] :
f r ∀ (b : ι), f b r
theorem pi_norm_lt_iff {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] {x : (i : ι) → π i} {r : } (hr : 0 < r) :
x < r ∀ (i : ι), x i < r

The seminorm of an element in a product space is < r if and only if the norm of each component is.

theorem pi_norm_lt_iff' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] {x : (i : ι) → π i} {r : } (hr : 0 < r) :
x < r ∀ (i : ι), x i < r

The seminorm of an element in a product space is < r if and only if the norm of each component is.

theorem pi_nnnorm_lt_iff {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] {x : (i : ι) → π i} {r : NNReal} (hr : 0 < r) :
x‖₊ < r ∀ (i : ι), x i‖₊ < r
theorem pi_nnnorm_lt_iff' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] {x : (i : ι) → π i} {r : NNReal} (hr : 0 < r) :
x‖₊ < r ∀ (i : ι), x i‖₊ < r
theorem norm_le_pi_norm {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (f : (i : ι) → π i) (i : ι) :
theorem norm_le_pi_norm' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] (f : (i : ι) → π i) (i : ι) :
theorem nnnorm_le_pi_nnnorm {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (f : (i : ι) → π i) (i : ι) :
theorem nnnorm_le_pi_nnnorm' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] (f : (i : ι) → π i) (i : ι) :
theorem pi_norm_const_le {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedAddGroup E] (a : E) :
fun (x : ι) => a a
theorem pi_norm_const_le' {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedGroup E] (a : E) :
fun (x : ι) => a a
theorem pi_nnnorm_const_le {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedAddGroup E] (a : E) :
fun (x : ι) => a‖₊ a‖₊
theorem pi_nnnorm_const_le' {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedGroup E] (a : E) :
fun (x : ι) => a‖₊ a‖₊
@[simp]
theorem pi_norm_const {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedAddGroup E] [Nonempty ι] (a : E) :
fun (_i : ι) => a = a
@[simp]
theorem pi_norm_const' {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedGroup E] [Nonempty ι] (a : E) :
fun (_i : ι) => a = a
@[simp]
theorem pi_nnnorm_const {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedAddGroup E] [Nonempty ι] (a : E) :
fun (_i : ι) => a‖₊ = a‖₊
@[simp]
theorem pi_nnnorm_const' {ι : Type u_1} {E : Type u_2} [Fintype ι] [SeminormedGroup E] [Nonempty ι] (a : E) :
fun (_i : ι) => a‖₊ = a‖₊
theorem Pi.sum_norm_apply_le_norm {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (f : (i : ι) → π i) :
i : ι, f i Fintype.card ι f

The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.

theorem Pi.sum_norm_apply_le_norm' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] (f : (i : ι) → π i) :
i : ι, f i Fintype.card ι f

The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.

theorem Pi.sum_nnnorm_apply_le_nnnorm {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddGroup (π i)] (f : (i : ι) → π i) :

The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.

theorem Pi.sum_nnnorm_apply_le_nnnorm' {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedGroup (π i)] (f : (i : ι) → π i) :

The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.

instance Pi.seminormedAddCommGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedAddCommGroup (π i)] :
SeminormedAddCommGroup ((i : ι) → π i)

Finite product of seminormed groups, using the sup norm.

Equations
theorem Pi.seminormedAddCommGroup.proof_1 {ι : Type u_1} {π : ιType u_2} [(i : ι) → SeminormedAddCommGroup (π i)] (a : (i : ι) → π i) (b : (i : ι) → π i) :
a + b = b + a
theorem Pi.seminormedAddCommGroup.proof_2 {ι : Type u_1} {π : ιType u_2} [Fintype ι] [(i : ι) → SeminormedAddCommGroup (π i)] (x : (i : ι) → π i) (y : (i : ι) → π i) :
dist x y = x - y
instance Pi.seminormedCommGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → SeminormedCommGroup (π i)] :
SeminormedCommGroup ((i : ι) → π i)

Finite product of seminormed groups, using the sup norm.

Equations
theorem Pi.normedAddGroup.proof_2 {ι : Type u_1} {π : ιType u_2} [Fintype ι] [(i : ι) → NormedAddGroup (π i)] (x : (i : ι) → π i) (y : (i : ι) → π i) :
dist x y = x - y
theorem Pi.normedAddGroup.proof_1 {ι : Type u_1} {π : ιType u_2} [Fintype ι] [(i : ι) → NormedAddGroup (π i)] :
∀ {x y : (i : ι) → π i}, dist x y = 0x = y
instance Pi.normedAddGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → NormedAddGroup (π i)] :
NormedAddGroup ((i : ι) → π i)

Finite product of seminormed groups, using the sup norm.

Equations
instance Pi.normedGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → NormedGroup (π i)] :
NormedGroup ((i : ι) → π i)

Finite product of normed groups, using the sup norm.

Equations
theorem Pi.normedAddCommGroup.proof_2 {ι : Type u_1} {π : ιType u_2} [Fintype ι] [(i : ι) → NormedAddCommGroup (π i)] :
∀ {x y : (i : ι) → π i}, dist x y = 0x = y
theorem Pi.normedAddCommGroup.proof_3 {ι : Type u_1} {π : ιType u_2} [Fintype ι] [(i : ι) → NormedAddCommGroup (π i)] (x : (i : ι) → π i) (y : (i : ι) → π i) :
dist x y = x - y
theorem Pi.normedAddCommGroup.proof_1 {ι : Type u_1} {π : ιType u_2} [(i : ι) → NormedAddCommGroup (π i)] (a : (i : ι) → π i) (b : (i : ι) → π i) :
a + b = b + a
instance Pi.normedAddCommGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → NormedAddCommGroup (π i)] :
NormedAddCommGroup ((i : ι) → π i)

Finite product of seminormed groups, using the sup norm.

Equations
instance Pi.normedCommGroup {ι : Type u_1} {π : ιType u_4} [Fintype ι] [(i : ι) → NormedCommGroup (π i)] :
NormedCommGroup ((i : ι) → π i)

Finite product of normed groups, using the sup norm.

Equations
theorem Pi.nnnorm_single {ι : Type u_1} {π : ιType u_4} [Fintype ι] [DecidableEq ι] [(i : ι) → NormedAddCommGroup (π i)] {i : ι} (y : π i) :
theorem Pi.norm_single {ι : Type u_1} {π : ιType u_4} [Fintype ι] [DecidableEq ι] [(i : ι) → NormedAddCommGroup (π i)] {i : ι} (y : π i) :

Multiplicative opposite #

The (additive) norm on the multiplicative opposite is the same as the norm on the original type.

Note that we do not provide this more generally as Norm Eᵐᵒᵖ, as this is not always a good choice of norm in the multiplicative SeminormedGroup E case.

We could repeat this instance to provide a [SeminormedGroup E] : SeminormedGroup Eᵃᵒᵖ instance, but that case would likely never be used.

Equations
  • MulOpposite.instSeminormedAddGroup = let __spread.0 := MulOpposite.instPseudoMetricSpace; SeminormedAddGroup.mk
Equations
  • MulOpposite.instNormedAddGroup = let __spread.0 := MulOpposite.instMetricSpace; let __spread.1 := MulOpposite.instSeminormedAddGroup; NormedAddGroup.mk
Equations
  • MulOpposite.instNormedAddCommGroup = let __spread.0 := MulOpposite.instSeminormedAddCommGroup; let __spread.1 := MulOpposite.instNormedAddGroup; NormedAddCommGroup.mk