Normed (semi)groups #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define 10 classes:
has_norm
,has_nnnorm
: auxiliary classes endowing a typeα
with a functionnorm : α → ℝ
(notation:‖x‖
) andnnnorm : α → ℝ≥0
(notation:‖x‖₊
), respectively;seminormed_..._group
: A seminormed (additive) (commutative) group is an (additive) (commutative) group with a norm and a compatible pseudometric space structure:∀ x y, dist x y = ‖x / y‖
or∀ x y, dist x y = ‖x - y‖
, depending on the group operation.normed_..._group
: A normed (additive) (commutative) group is an (additive) (commutative) group with a norm and a compatible metric space structure.
We also prove basic properties of (semi)normed groups and provide some instances.
Notes #
The current convention dist x y = ‖x - y‖
means that the distance is invariant under right
addition, but actions in mathlib are usually from the left. This means we might want to change it to
dist x y = ‖-x + y‖
.
The normed group hierarchy would lend itself well to a mixin design (that is, having
seminormed_group
and seminormed_add_group
not extend group
and add_group
), but we choose not
to for performance concerns.
Tags #
normed group
Auxiliary class, endowing a type E
with a function norm : E → ℝ
with notation ‖x‖
. This
class is designed to be extended in more interesting classes specifying the properties of the norm.
Instances of this typeclass
- seminormed_add_group.to_has_norm
- seminormed_group.to_has_norm
- normed_add_group.to_has_norm
- normed_group.to_has_norm
- seminormed_add_comm_group.to_has_norm
- seminormed_comm_group.to_has_norm
- normed_add_comm_group.to_has_norm
- normed_comm_group.to_has_norm
- non_unital_semi_normed_ring.to_has_norm
- semi_normed_ring.to_has_norm
- non_unital_normed_ring.to_has_norm
- normed_ring.to_has_norm
- normed_division_ring.to_has_norm
- normed_field.to_has_norm
- normed_ordered_add_group.to_has_norm
- normed_ordered_group.to_has_norm
- normed_linear_ordered_add_group.to_has_norm
- normed_linear_ordered_group.to_has_norm
- normed_linear_ordered_field.to_has_norm
- normed_add_comm_group_of_ring.to_has_norm
- real.has_norm
- ulift.has_norm
- additive.has_norm
- multiplicative.has_norm
- order_dual.has_norm
- prod.has_norm
- normed_add_group_hom.has_op_norm
- complex.has_norm
- uniform_space.completion.has_norm
- continuous_linear_map.has_op_norm
- continuous_multilinear_map.has_op_norm
- continuous_multilinear_map.has_op_norm'
- norm_on_quotient
- pi_Lp.has_norm
Instances of other typeclasses for has_norm
- has_norm.has_sizeof_inst
Auxiliary class, endowing a type α
with a function nnnorm : α → ℝ≥0
with notation ‖x‖₊
.
Instances of this typeclass
Instances of other typeclasses for has_nnnorm
- has_nnnorm.has_sizeof_inst
- to_has_norm : has_norm E
- to_add_group : add_group E
- to_pseudo_metric_space : pseudo_metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x - y‖) . "obviously"
A seminormed group is an additive group endowed with a norm for which dist x y = ‖x - y‖
defines a pseudometric space structure.
Instances of this typeclass
Instances of other typeclasses for seminormed_add_group
- seminormed_add_group.has_sizeof_inst
- to_has_norm : has_norm E
- to_group : group E
- to_pseudo_metric_space : pseudo_metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x / y‖) . "obviously"
A seminormed group is a group endowed with a norm for which dist x y = ‖x / y‖
defines a
pseudometric space structure.
Instances of this typeclass
Instances of other typeclasses for seminormed_group
- seminormed_group.has_sizeof_inst
- to_has_norm : has_norm E
- to_add_group : add_group E
- to_metric_space : metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x - y‖) . "obviously"
A normed group is an additive group endowed with a norm for which dist x y = ‖x - y‖
defines a
metric space structure.
Instances of this typeclass
Instances of other typeclasses for normed_add_group
- normed_add_group.has_sizeof_inst
- to_has_norm : has_norm E
- to_group : group E
- to_metric_space : metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x / y‖) . "obviously"
A normed group is a group endowed with a norm for which dist x y = ‖x / y‖
defines a metric
space structure.
Instances of this typeclass
Instances of other typeclasses for normed_group
- normed_group.has_sizeof_inst
- to_has_norm : has_norm E
- to_add_comm_group : add_comm_group E
- to_pseudo_metric_space : pseudo_metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x - y‖) . "obviously"
A seminormed group is an additive group endowed with a norm for which dist x y = ‖x - y‖
defines a pseudometric space structure.
Instances of this typeclass
- normed_add_comm_group.to_seminormed_add_comm_group
- order_dual.seminormed_add_comm_group
- non_unital_semi_normed_ring.to_seminormed_add_comm_group
- ulift.seminormed_add_comm_group
- additive.seminormed_add_comm_group
- prod.seminormed_add_comm_group
- pi.seminormed_add_comm_group
- mul_opposite.seminormed_add_comm_group
- add_subgroup.seminormed_add_comm_group
- submodule.seminormed_add_comm_group
- normed_add_group_hom.to_seminormed_add_comm_group
- restrict_scalars.seminormed_add_comm_group
- continuous_linear_map.to_seminormed_add_comm_group
- add_subgroup.seminormed_add_comm_group_quotient
- submodule.quotient.seminormed_add_comm_group
- pi_Lp.seminormed_add_comm_group
- normed_space.dual.seminormed_add_comm_group
Instances of other typeclasses for seminormed_add_comm_group
- seminormed_add_comm_group.has_sizeof_inst
- to_has_norm : has_norm E
- to_comm_group : comm_group E
- to_pseudo_metric_space : pseudo_metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x / y‖) . "obviously"
A seminormed group is a group endowed with a norm for which dist x y = ‖x / y‖
defines a pseudometric space structure.
Instances of this typeclass
Instances of other typeclasses for seminormed_comm_group
- seminormed_comm_group.has_sizeof_inst
- to_has_norm : has_norm E
- to_add_comm_group : add_comm_group E
- to_metric_space : metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x - y‖) . "obviously"
A normed group is an additive group endowed with a norm for which dist x y = ‖x - y‖
defines a
metric space structure.
Instances of this typeclass
- order_dual.normed_add_comm_group
- non_unital_normed_ring.to_normed_add_comm_group
- normed_ordered_add_group.to_normed_add_comm_group
- punit.normed_add_comm_group
- real.normed_add_comm_group
- int.normed_add_comm_group
- rat.normed_add_comm_group
- ulift.normed_add_comm_group
- additive.normed_add_comm_group
- prod.normed_add_comm_group
- pi.normed_add_comm_group
- mul_opposite.normed_add_comm_group
- add_subgroup.normed_add_comm_group
- submodule.normed_add_comm_group
- normed_add_group_hom.to_normed_add_comm_group
- restrict_scalars.normed_add_comm_group
- complex.normed_add_comm_group
- uniform_space.completion.normed_add_comm_group
- continuous_linear_map.to_normed_add_comm_group
- continuous_multilinear_map.normed_add_comm_group
- continuous_multilinear_map.normed_add_comm_group'
- add_subgroup.normed_add_comm_group_quotient
- submodule.quotient.normed_add_comm_group
- add_circle.normed_add_comm_group
- real.angle.normed_add_comm_group
- pi_Lp.normed_add_comm_group
- normed_space.dual.normed_add_comm_group
- normed_add_comm_group_of_ring.to_normed_add_comm_group
- tensor_product.normed_add_comm_group
- module.dual.is_faithful_pos_map.normed_add_comm_group
- module.dual.pi.normed_add_comm_group
Instances of other typeclasses for normed_add_comm_group
- normed_add_comm_group.has_sizeof_inst
- to_has_norm : has_norm E
- to_comm_group : comm_group E
- to_metric_space : metric_space E
- dist_eq : (∀ (x y : E), has_dist.dist x y = ‖x / y‖) . "obviously"
A normed group is a group endowed with a norm for which dist x y = ‖x / y‖
defines a metric
space structure.
Instances of this typeclass
Instances of other typeclasses for normed_comm_group
- normed_comm_group.has_sizeof_inst
Equations
Equations
Equations
- seminormed_add_comm_group.to_seminormed_add_group = {to_has_norm := seminormed_add_comm_group.to_has_norm _inst_1, to_add_group := {add := add_comm_group.add seminormed_add_comm_group.to_add_comm_group, add_assoc := _, zero := add_comm_group.zero seminormed_add_comm_group.to_add_comm_group, zero_add := _, add_zero := _, nsmul := add_comm_group.nsmul seminormed_add_comm_group.to_add_comm_group, nsmul_zero' := _, nsmul_succ' := _, neg := add_comm_group.neg seminormed_add_comm_group.to_add_comm_group, sub := add_comm_group.sub seminormed_add_comm_group.to_add_comm_group, sub_eq_add_neg := _, zsmul := add_comm_group.zsmul seminormed_add_comm_group.to_add_comm_group, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _}, to_pseudo_metric_space := seminormed_add_comm_group.to_pseudo_metric_space _inst_1, dist_eq := _}
Equations
- seminormed_comm_group.to_seminormed_group = {to_has_norm := seminormed_comm_group.to_has_norm _inst_1, to_group := {mul := comm_group.mul seminormed_comm_group.to_comm_group, mul_assoc := _, one := comm_group.one seminormed_comm_group.to_comm_group, one_mul := _, mul_one := _, npow := comm_group.npow seminormed_comm_group.to_comm_group, npow_zero' := _, npow_succ' := _, inv := comm_group.inv seminormed_comm_group.to_comm_group, div := comm_group.div seminormed_comm_group.to_comm_group, div_eq_mul_inv := _, zpow := comm_group.zpow seminormed_comm_group.to_comm_group, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _}, to_pseudo_metric_space := seminormed_comm_group.to_pseudo_metric_space _inst_1, dist_eq := _}
Equations
- normed_comm_group.to_normed_group = {to_has_norm := normed_comm_group.to_has_norm _inst_1, to_group := {mul := comm_group.mul normed_comm_group.to_comm_group, mul_assoc := _, one := comm_group.one normed_comm_group.to_comm_group, one_mul := _, mul_one := _, npow := comm_group.npow normed_comm_group.to_comm_group, npow_zero' := _, npow_succ' := _, inv := comm_group.inv normed_comm_group.to_comm_group, div := comm_group.div normed_comm_group.to_comm_group, div_eq_mul_inv := _, zpow := comm_group.zpow normed_comm_group.to_comm_group, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, mul_left_inv := _}, to_metric_space := normed_comm_group.to_metric_space _inst_1, dist_eq := _}
Equations
- normed_add_comm_group.to_normed_add_group = {to_has_norm := normed_add_comm_group.to_has_norm _inst_1, to_add_group := {add := add_comm_group.add normed_add_comm_group.to_add_comm_group, add_assoc := _, zero := add_comm_group.zero normed_add_comm_group.to_add_comm_group, zero_add := _, add_zero := _, nsmul := add_comm_group.nsmul normed_add_comm_group.to_add_comm_group, nsmul_zero' := _, nsmul_succ' := _, neg := add_comm_group.neg normed_add_comm_group.to_add_comm_group, sub := add_comm_group.sub normed_add_comm_group.to_add_comm_group, sub_eq_add_neg := _, zsmul := add_comm_group.zsmul normed_add_comm_group.to_add_comm_group, zsmul_zero' := _, zsmul_succ' := _, zsmul_neg' := _, add_left_neg := _}, to_metric_space := normed_add_comm_group.to_metric_space _inst_1, dist_eq := _}
Construct a normed_group
from a seminormed_group
satisfying ∀ x, ‖x‖ = 0 → x = 1
. This
avoids having to go back to the (pseudo_)metric_space
level when declaring a normed_group
instance as a special case of a more general seminormed_group
instance.
Equations
- normed_group.of_separation h = {to_has_norm := seminormed_group.to_has_norm _inst_1, to_group := seminormed_group.to_group _inst_1, to_metric_space := {to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space _inst_1, eq_of_dist_eq_zero := _}, dist_eq := _}
Construct a normed_add_group
from a seminormed_add_group
satisfying
∀ x, ‖x‖ = 0 → x = 0
. This avoids having to go back to the (pseudo_)metric_space
level when
declaring a normed_add_group
instance as a special case of a more general seminormed_add_group
instance.
Equations
- normed_add_group.of_separation h = {to_has_norm := seminormed_add_group.to_has_norm _inst_1, to_add_group := seminormed_add_group.to_add_group _inst_1, to_metric_space := {to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space _inst_1, eq_of_dist_eq_zero := _}, dist_eq := _}
Construct a normed_add_comm_group
from a seminormed_add_comm_group
satisfying
∀ x, ‖x‖ = 0 → x = 0
. This avoids having to go back to the (pseudo_)metric_space
level when
declaring a normed_add_comm_group
instance as a special case of a more general
seminormed_add_comm_group
instance.
Equations
Construct a normed_comm_group
from a seminormed_comm_group
satisfying
∀ x, ‖x‖ = 0 → x = 1
. This avoids having to go back to the (pseudo_)metric_space
level when
declaring a normed_comm_group
instance as a special case of a more general seminormed_comm_group
instance.
Equations
Construct a seminormed group from a translation-invariant distance.
Equations
- seminormed_add_group.of_add_dist h₁ h₂ = {to_has_norm := _inst_1, to_add_group := _inst_2, to_pseudo_metric_space := _inst_3, dist_eq := _}
Construct a seminormed group from a multiplication-invariant distance.
Equations
- seminormed_group.of_mul_dist h₁ h₂ = {to_has_norm := _inst_1, to_group := _inst_2, to_pseudo_metric_space := _inst_3, dist_eq := _}
Construct a seminormed group from a translation-invariant pseudodistance.
Equations
- seminormed_add_group.of_add_dist' h₁ h₂ = {to_has_norm := _inst_1, to_add_group := _inst_2, to_pseudo_metric_space := _inst_3, dist_eq := _}
Construct a seminormed group from a multiplication-invariant pseudodistance.
Equations
- seminormed_group.of_mul_dist' h₁ h₂ = {to_has_norm := _inst_1, to_group := _inst_2, to_pseudo_metric_space := _inst_3, dist_eq := _}
Construct a seminormed group from a translation-invariant pseudodistance.
Equations
Construct a seminormed group from a multiplication-invariant pseudodistance.
Equations
- seminormed_comm_group.of_mul_dist h₁ h₂ = {to_has_norm := seminormed_group.to_has_norm (seminormed_group.of_mul_dist h₁ h₂), to_comm_group := _inst_2, to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space (seminormed_group.of_mul_dist h₁ h₂), dist_eq := _}
Construct a seminormed group from a multiplication-invariant pseudodistance.
Equations
- seminormed_comm_group.of_mul_dist' h₁ h₂ = {to_has_norm := seminormed_group.to_has_norm (seminormed_group.of_mul_dist' h₁ h₂), to_comm_group := _inst_2, to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space (seminormed_group.of_mul_dist' h₁ h₂), dist_eq := _}
Construct a seminormed group from a translation-invariant pseudodistance.
Equations
Construct a normed group from a multiplication-invariant distance.
Equations
- normed_group.of_mul_dist h₁ h₂ = {to_has_norm := seminormed_group.to_has_norm (seminormed_group.of_mul_dist h₁ h₂), to_group := seminormed_group.to_group (seminormed_group.of_mul_dist h₁ h₂), to_metric_space := _inst_3, dist_eq := _}
Construct a normed group from a translation-invariant distance.
Equations
- normed_add_group.of_add_dist h₁ h₂ = {to_has_norm := seminormed_add_group.to_has_norm (seminormed_add_group.of_add_dist h₁ h₂), to_add_group := seminormed_add_group.to_add_group (seminormed_add_group.of_add_dist h₁ h₂), to_metric_space := _inst_3, dist_eq := _}
Construct a normed group from a translation-invariant pseudodistance.
Equations
- normed_add_group.of_add_dist' h₁ h₂ = {to_has_norm := seminormed_add_group.to_has_norm (seminormed_add_group.of_add_dist' h₁ h₂), to_add_group := seminormed_add_group.to_add_group (seminormed_add_group.of_add_dist' h₁ h₂), to_metric_space := _inst_3, dist_eq := _}
Construct a normed group from a multiplication-invariant pseudodistance.
Equations
- normed_group.of_mul_dist' h₁ h₂ = {to_has_norm := seminormed_group.to_has_norm (seminormed_group.of_mul_dist' h₁ h₂), to_group := seminormed_group.to_group (seminormed_group.of_mul_dist' h₁ h₂), to_metric_space := _inst_3, dist_eq := _}
Construct a normed group from a multiplication-invariant pseudodistance.
Equations
- normed_comm_group.of_mul_dist h₁ h₂ = {to_has_norm := normed_group.to_has_norm (normed_group.of_mul_dist h₁ h₂), to_comm_group := _inst_2, to_metric_space := normed_group.to_metric_space (normed_group.of_mul_dist h₁ h₂), dist_eq := _}
Construct a normed group from a translation-invariant pseudodistance.
Equations
- normed_add_comm_group.of_add_dist h₁ h₂ = {to_has_norm := normed_add_group.to_has_norm (normed_add_group.of_add_dist h₁ h₂), to_add_comm_group := _inst_2, to_metric_space := normed_add_group.to_metric_space (normed_add_group.of_add_dist h₁ h₂), dist_eq := _}
Construct a normed group from a translation-invariant pseudodistance.
Equations
- normed_add_comm_group.of_add_dist' h₁ h₂ = {to_has_norm := normed_add_group.to_has_norm (normed_add_group.of_add_dist' h₁ h₂), to_add_comm_group := _inst_2, to_metric_space := normed_add_group.to_metric_space (normed_add_group.of_add_dist' h₁ h₂), dist_eq := _}
Construct a normed group from a multiplication-invariant pseudodistance.
Equations
- normed_comm_group.of_mul_dist' h₁ h₂ = {to_has_norm := normed_group.to_has_norm (normed_group.of_mul_dist' h₁ h₂), to_comm_group := _inst_2, to_metric_space := normed_group.to_metric_space (normed_group.of_mul_dist' h₁ h₂), dist_eq := _}
Construct a seminormed group from a seminorm, i.e., registering the pseudodistance*
and the pseudometric space structure from the seminorm properties. Note that in most cases this
instance creates bad definitional equalities (e.g., it does not take into account a possibly
existing uniform_space
instance on E
).
Equations
- f.to_seminormed_add_group = {to_has_norm := {norm := ⇑f}, to_add_group := _inst_1, to_pseudo_metric_space := {to_has_dist := {dist := λ (x y : E), ⇑f (x - y)}, dist_self := _, dist_comm := _, dist_triangle := _, edist := λ (x y : E), ↑⟨has_dist.dist x y, _⟩, edist_dist := _, to_uniform_space := uniform_space_of_dist has_dist.dist _ _ _, uniformity_dist := _, to_bornology := bornology.of_dist has_dist.dist _ _ _, cobounded_sets := _}, dist_eq := _}
Construct a seminormed group from a seminorm, i.e., registering the pseudodistance and the
pseudometric space structure from the seminorm properties. Note that in most cases this instance
creates bad definitional equalities (e.g., it does not take into account a possibly existing
uniform_space
instance on E
).
Equations
- f.to_seminormed_group = {to_has_norm := {norm := ⇑f}, to_group := _inst_1, to_pseudo_metric_space := {to_has_dist := {dist := λ (x y : E), ⇑f (x / y)}, dist_self := _, dist_comm := _, dist_triangle := _, edist := λ (x y : E), ↑⟨has_dist.dist x y, _⟩, edist_dist := _, to_uniform_space := uniform_space_of_dist has_dist.dist _ _ _, uniformity_dist := _, to_bornology := bornology.of_dist has_dist.dist _ _ _, cobounded_sets := _}, dist_eq := _}
Construct a seminormed group from a seminorm, i.e., registering the pseudodistance and the
pseudometric space structure from the seminorm properties. Note that in most cases this instance
creates bad definitional equalities (e.g., it does not take into account a possibly existing
uniform_space
instance on E
).
Equations
Construct a seminormed group from a seminorm, i.e., registering the pseudodistance*
and the pseudometric space structure from the seminorm properties. Note that in most cases this
instance creates bad definitional equalities (e.g., it does not take into account a possibly
existing uniform_space
instance on E
).
Construct a normed group from a norm, i.e., registering the distance and the metric space
structure from the norm properties. Note that in most cases this instance creates bad definitional
equalities (e.g., it does not take into account a possibly existing uniform_space
instance on
E
).
Equations
- f.to_normed_group = {to_has_norm := seminormed_group.to_has_norm f.to_group_seminorm.to_seminormed_group, to_group := seminormed_group.to_group f.to_group_seminorm.to_seminormed_group, to_metric_space := {to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space f.to_group_seminorm.to_seminormed_group, eq_of_dist_eq_zero := _}, dist_eq := _}
Construct a normed group from a norm, i.e., registering the distance and the metric
space structure from the norm properties. Note that in most cases this instance creates bad
definitional equalities (e.g., it does not take into account a possibly existing uniform_space
instance on E
).
Equations
- f.to_normed_add_group = {to_has_norm := seminormed_add_group.to_has_norm f.to_add_group_seminorm.to_seminormed_add_group, to_add_group := seminormed_add_group.to_add_group f.to_add_group_seminorm.to_seminormed_add_group, to_metric_space := {to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space f.to_add_group_seminorm.to_seminormed_add_group, eq_of_dist_eq_zero := _}, dist_eq := _}
Construct a normed group from a norm, i.e., registering the distance and the metric
space structure from the norm properties. Note that in most cases this instance creates bad
definitional equalities (e.g., it does not take into account a possibly existing uniform_space
instance on E
).
Equations
Construct a normed group from a norm, i.e., registering the distance and the metric space
structure from the norm properties. Note that in most cases this instance creates bad definitional
equalities (e.g., it does not take into account a possibly existing uniform_space
instance on
E
).
Equations
- f.to_normed_comm_group = {to_has_norm := normed_group.to_has_norm f.to_normed_group, to_comm_group := _inst_1, to_metric_space := normed_group.to_metric_space f.to_normed_group, dist_eq := _}
Equations
- punit.normed_add_comm_group = {to_has_norm := {norm := function.const punit 0}, to_add_comm_group := punit.add_comm_group, to_metric_space := punit.metric_space, dist_eq := punit.normed_add_comm_group._proof_1}
Alias of dist_eq_norm_sub
.
Alias of dist_eq_norm_sub'
.
In a (semi)normed group, inversion x ↦ x⁻¹
tends to infinity at infinity. TODO: use
bornology.cobounded
instead of filter.comap has_norm.norm filter.at_top
.
In a (semi)normed group, negation x ↦ -x
tends to infinity at infinity. TODO: use
bornology.cobounded
instead of filter.comap has_norm.norm filter.at_top
.
Alias of norm_le_norm_add_norm_sub
.
Alias of the forward direction of bounded_iff_forall_norm_le
.
The norm of a seminormed group as a group seminorm.
Equations
- norm_group_seminorm E = {to_fun := has_norm.norm seminormed_group.to_has_norm, map_one' := _, mul_le' := _, inv' := _}
The norm of a seminormed group as an additive group seminorm.
Equations
- norm_add_group_seminorm E = {to_fun := has_norm.norm seminormed_add_group.to_has_norm, map_zero' := _, add_le' := _, neg' := _}
A homomorphism f
of seminormed groups is Lipschitz, if there exists a constant C
such that
for all x
, one has ‖f x‖ ≤ C * ‖x‖
. The analogous condition for a linear map of
(semi)normed spaces is in normed_space.operator_norm
.
A homomorphism f
of seminormed groups is Lipschitz, if there exists a constant C
such that for all x
, one has ‖f x‖ ≤ C * ‖x‖
. The analogous condition for a linear map of
(semi)normed spaces is in normed_space.operator_norm
.
Alias of the forward direction of lipschitz_on_with_iff_norm_div_le
.
Alias of the forward direction of lipschitz_on_with_iff_norm_div_le
.
Alias of the forward direction of lipschitz_with_iff_norm_div_le
.
Alias of the forward direction of lipschitz_with_iff_norm_div_le
.
A homomorphism f
of seminormed groups is continuous, if there exists a constant C
such that
for all x
, one has ‖f x‖ ≤ C * ‖x‖
.
A homomorphism f
of seminormed groups is continuous, if there exists a constant C
such that for all x
, one has ‖f x‖ ≤ C * ‖x‖
Alias of the reverse direction of monoid_hom_class.isometry_iff_norm
.
Alias of the reverse direction of monoid_hom_class.isometry_iff_norm
.
Alias of nndist_eq_nnnorm_sub
.
Alias of nnnorm_le_nnnorm_add_nnnorm_sub
.
Special case of the sandwich theorem: if the norm of f
is eventually bounded by a real
function a
which tends to 0
, then f
tends to 1
. In this pair of lemmas (squeeze_one_norm'
and squeeze_one_norm
), following a convention of similar lemmas in topology.metric_space.basic
and topology.algebra.order
, the '
version is phrased using "eventually" and the non-'
version
is phrased absolutely.
Special case of the sandwich theorem: if the norm of f
is eventually bounded by a
real function a
which tends to 0
, then f
tends to 1
. In this pair of lemmas
(squeeze_zero_norm'
and squeeze_zero_norm
), following a convention of similar lemmas in
topology.metric_space.basic
and topology.algebra.order
, the '
version is phrased using
"eventually" and the non-'
version is phrased absolutely.
Special case of the sandwich theorem: if the norm of f
is bounded by a real
function a
which tends to 0
, then f
tends to 0
.
Special case of the sandwich theorem: if the norm of f
is bounded by a real function a
which
tends to 0
, then f
tends to 1
.
A helper lemma used to prove that the (scalar or usual) product of a function that
tends to zero and a bounded function tends to zero. This lemma is formulated for any binary
operation op : E → F → G
with an estimate ‖op x y‖ ≤ A * ‖x‖ * ‖y‖
for some constant A instead
of multiplication so that it can be applied to (*)
, flip (*)
, (•)
, and flip (•)
.
A helper lemma used to prove that the (scalar or usual) product of a function that tends to one
and a bounded function tends to one. This lemma is formulated for any binary operation
op : E → F → G
with an estimate ‖op x y‖ ≤ A * ‖x‖ * ‖y‖
for some constant A instead of
multiplication so that it can be applied to (*)
, flip (*)
, (•)
, and flip (•)
.
A helper lemma used to prove that the (scalar or usual) product of a function that tends to one
and a bounded function tends to one. This lemma is formulated for any binary operation
op : E → F → G
with an estimate ‖op x y‖ ≤ ‖x‖ * ‖y‖
instead of multiplication so that it
can be applied to (*)
, flip (*)
, (•)
, and flip (•)
.
A helper lemma used to prove that the (scalar or usual) product of a function that
tends to zero and a bounded function tends to zero. This lemma is formulated for any binary
operation op : E → F → G
with an estimate ‖op x y‖ ≤ ‖x‖ * ‖y‖
instead of multiplication so that
it can be applied to (*)
, flip (*)
, (•)
, and flip (•)
.
If ‖y‖→∞
, then we can assume y≠x
for any
fixed x
If ‖y‖ → ∞
, then we can assume y ≠ x
for any fixed x
.
A group homomorphism from an add_group
to a seminormed_add_group
induces a
seminormed_add_group
structure on the domain.
Equations
- seminormed_add_group.induced E F f = {to_has_norm := {norm := λ (x : E), ‖⇑f x‖}, to_add_group := _inst_1, to_pseudo_metric_space := {to_has_dist := pseudo_metric_space.to_has_dist (pseudo_metric_space.induced ⇑f seminormed_add_group.to_pseudo_metric_space), dist_self := _, dist_comm := _, dist_triangle := _, edist := pseudo_metric_space.edist (pseudo_metric_space.induced ⇑f seminormed_add_group.to_pseudo_metric_space), edist_dist := _, to_uniform_space := pseudo_metric_space.to_uniform_space (pseudo_metric_space.induced ⇑f seminormed_add_group.to_pseudo_metric_space), uniformity_dist := _, to_bornology := pseudo_metric_space.to_bornology (pseudo_metric_space.induced ⇑f seminormed_add_group.to_pseudo_metric_space), cobounded_sets := _}, dist_eq := _}
A group homomorphism from a group
to a seminormed_group
induces a seminormed_group
structure on the domain.
Equations
- seminormed_group.induced E F f = {to_has_norm := {norm := λ (x : E), ‖⇑f x‖}, to_group := _inst_1, to_pseudo_metric_space := {to_has_dist := pseudo_metric_space.to_has_dist (pseudo_metric_space.induced ⇑f seminormed_group.to_pseudo_metric_space), dist_self := _, dist_comm := _, dist_triangle := _, edist := pseudo_metric_space.edist (pseudo_metric_space.induced ⇑f seminormed_group.to_pseudo_metric_space), edist_dist := _, to_uniform_space := pseudo_metric_space.to_uniform_space (pseudo_metric_space.induced ⇑f seminormed_group.to_pseudo_metric_space), uniformity_dist := _, to_bornology := pseudo_metric_space.to_bornology (pseudo_metric_space.induced ⇑f seminormed_group.to_pseudo_metric_space), cobounded_sets := _}, dist_eq := _}
A group homomorphism from a comm_group
to a seminormed_group
induces a
seminormed_comm_group
structure on the domain.
Equations
- seminormed_comm_group.induced E F f = {to_has_norm := seminormed_group.to_has_norm (seminormed_group.induced E F f), to_comm_group := _inst_1, to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space (seminormed_group.induced E F f), dist_eq := _}
A group homomorphism from an add_comm_group
to a seminormed_add_group
induces a
seminormed_add_comm_group
structure on the domain.
Equations
- seminormed_add_comm_group.induced E F f = {to_has_norm := seminormed_add_group.to_has_norm (seminormed_add_group.induced E F f), to_add_comm_group := _inst_1, to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space (seminormed_add_group.induced E F f), dist_eq := _}
An injective group homomorphism from an add_group
to a normed_add_group
induces a
normed_add_group
structure on the domain.
Equations
- normed_add_group.induced E F f h = {to_has_norm := seminormed_add_group.to_has_norm (seminormed_add_group.induced E F f), to_add_group := seminormed_add_group.to_add_group (seminormed_add_group.induced E F f), to_metric_space := {to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space (seminormed_add_group.induced E F f), eq_of_dist_eq_zero := _}, dist_eq := _}
An injective group homomorphism from a group
to a normed_group
induces a normed_group
structure on the domain.
Equations
- normed_group.induced E F f h = {to_has_norm := seminormed_group.to_has_norm (seminormed_group.induced E F f), to_group := seminormed_group.to_group (seminormed_group.induced E F f), to_metric_space := {to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space (seminormed_group.induced E F f), eq_of_dist_eq_zero := _}, dist_eq := _}
An injective group homomorphism from an comm_group
to a normed_comm_group
induces a
normed_comm_group
structure on the domain.
Equations
- normed_add_comm_group.induced E F f h = {to_has_norm := seminormed_add_group.to_has_norm (seminormed_add_group.induced E F f), to_add_comm_group := _inst_1, to_metric_space := {to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space (seminormed_add_group.induced E F f), eq_of_dist_eq_zero := _}, dist_eq := _}
An injective group homomorphism from an comm_group
to a normed_group
induces a
normed_comm_group
structure on the domain.
Equations
- normed_comm_group.induced E F f h = {to_has_norm := seminormed_group.to_has_norm (seminormed_group.induced E F f), to_comm_group := _inst_1, to_metric_space := {to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space (seminormed_group.induced E F f), eq_of_dist_eq_zero := _}, dist_eq := _}
Equations
- real.normed_add_comm_group = {to_has_norm := real.has_norm, to_add_comm_group := real.add_comm_group, to_metric_space := real.metric_space, dist_eq := real.normed_add_comm_group._proof_1}
Equations
- int.normed_add_comm_group = {to_has_norm := {norm := λ (n : ℤ), ‖↑n‖}, to_add_comm_group := int.add_comm_group, to_metric_space := int.metric_space, dist_eq := int.normed_add_comm_group._proof_1}
Equations
- rat.normed_add_comm_group = {to_has_norm := {norm := λ (r : ℚ), ‖↑r‖}, to_add_comm_group := rat.add_comm_group, to_metric_space := rat.metric_space, dist_eq := rat.normed_add_comm_group._proof_1}
A seminormed group is a uniform additive group, i.e., addition and subtraction are uniformly continuous.
A seminormed group is a uniform group, i.e., multiplication and division are uniformly continuous.
Alias of the forward direction of norm_div_eq_zero_iff
.
Alias of the forward direction of norm_div_eq_zero_iff
.
The norm of a normed group as a group norm.
Equations
- norm_group_norm E = {to_fun := (norm_group_seminorm E).to_fun, map_one' := _, mul_le' := _, inv' := _, eq_one_of_map_eq_zero' := _}
The norm of a normed group as an additive group norm.
Equations
- norm_add_group_norm E = {to_fun := (norm_add_group_seminorm E).to_fun, map_zero' := _, add_le' := _, neg' := _, eq_zero_of_map_eq_zero' := _}
Some relations with has_compact_support
Alias of the reverse direction of has_compact_support_norm_iff
.
Equations
- ulift.seminormed_add_group = seminormed_add_group.induced (ulift E) E {to_fun := ulift.down E, map_zero' := _, map_add' := _}
Equations
- ulift.seminormed_group = seminormed_group.induced (ulift E) E {to_fun := ulift.down E, map_one' := _, map_mul' := _}
Equations
- ulift.seminormed_comm_group = seminormed_comm_group.induced (ulift E) E {to_fun := ulift.down E, map_one' := _, map_mul' := _}
Equations
- ulift.seminormed_add_comm_group = seminormed_add_comm_group.induced (ulift E) E {to_fun := ulift.down E, map_zero' := _, map_add' := _}
Equations
- ulift.normed_group = normed_group.induced (ulift E) E {to_fun := ulift.down E, map_one' := _, map_mul' := _} ulift.down_injective
Equations
- ulift.normed_add_group = normed_add_group.induced (ulift E) E {to_fun := ulift.down E, map_zero' := _, map_add' := _} ulift.down_injective
Equations
- ulift.normed_add_comm_group = normed_add_comm_group.induced (ulift E) E {to_fun := ulift.down E, map_zero' := _, map_add' := _} ulift.down_injective
Equations
- ulift.normed_comm_group = normed_comm_group.induced (ulift E) E {to_fun := ulift.down E, map_one' := _, map_mul' := _} ulift.down_injective
Equations
- additive.has_norm = _inst_1
Equations
- multiplicative.has_norm = _inst_1
Equations
- additive.has_nnnorm = _inst_1
Equations
- multiplicative.has_nnnorm = _inst_1
Equations
- additive.seminormed_add_comm_group = {to_has_norm := seminormed_add_group.to_has_norm additive.seminormed_add_group, to_add_comm_group := additive.add_comm_group seminormed_comm_group.to_comm_group, to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space additive.seminormed_add_group, dist_eq := _}
Equations
- multiplicative.seminormed_comm_group = {to_has_norm := seminormed_group.to_has_norm multiplicative.seminormed_group, to_comm_group := multiplicative.comm_group seminormed_add_comm_group.to_add_comm_group, to_pseudo_metric_space := seminormed_group.to_pseudo_metric_space multiplicative.seminormed_group, dist_eq := _}
Equations
Order dual #
Equations
- order_dual.has_norm = _inst_1
Equations
- order_dual.has_nnnorm = _inst_1
Equations
- order_dual.seminormed_group = _inst_1
Equations
- order_dual.seminormed_add_group = _inst_1
Equations
- order_dual.seminormed_comm_group = _inst_1
Equations
Equations
- order_dual.normed_add_group = _inst_1
Equations
- order_dual.normed_group = _inst_1
Equations
- order_dual.normed_add_comm_group = _inst_1
Equations
- order_dual.normed_comm_group = _inst_1
Binary product of normed groups #
Product of seminormed groups, using the sup norm.
Product of seminormed groups, using the sup norm.
Product of seminormed groups, using the sup norm.
Equations
- prod.seminormed_add_comm_group = {to_has_norm := seminormed_add_group.to_has_norm prod.seminormed_add_group, to_add_comm_group := prod.add_comm_group seminormed_add_comm_group.to_add_comm_group, to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space prod.seminormed_add_group, dist_eq := _}
Product of seminormed groups, using the sup norm.
Product of normed groups, using the sup norm.
Product of normed groups, using the sup norm.
Product of normed groups, using the sup norm.
Product of normed groups, using the sup norm.
Finite product of normed groups #
Finite product of seminormed groups, using the sup norm.
Equations
- pi.seminormed_group = {to_has_norm := {norm := λ (f : Π (i : ι), π i), ↑(finset.univ.sup (λ (b : ι), ‖f b‖₊))}, to_group := pi.group (λ (i : ι), seminormed_group.to_group), to_pseudo_metric_space := pseudo_metric_space_pi (λ (b : ι), seminormed_group.to_pseudo_metric_space), dist_eq := _}
Finite product of seminormed groups, using the sup norm.
Equations
- pi.seminormed_add_group = {to_has_norm := {norm := λ (f : Π (i : ι), π i), ↑(finset.univ.sup (λ (b : ι), ‖f b‖₊))}, to_add_group := pi.add_group (λ (i : ι), seminormed_add_group.to_add_group), to_pseudo_metric_space := pseudo_metric_space_pi (λ (b : ι), seminormed_add_group.to_pseudo_metric_space), dist_eq := _}
The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.
The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.
The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.
The $L^1$ norm is less than the $L^\infty$ norm scaled by the cardinality.
Finite product of seminormed groups, using the sup norm.
Finite product of seminormed groups, using the sup norm.
Equations
- pi.seminormed_add_comm_group = {to_has_norm := seminormed_add_group.to_has_norm pi.seminormed_add_group, to_add_comm_group := pi.add_comm_group (λ (i : ι), seminormed_add_comm_group.to_add_comm_group), to_pseudo_metric_space := seminormed_add_group.to_pseudo_metric_space pi.seminormed_add_group, dist_eq := _}
Finite product of normed groups, using the sup norm.
Equations
Finite product of seminormed groups, using the sup norm.
Finite product of normed groups, using the sup norm.
Equations
- pi.normed_comm_group = {to_has_norm := seminormed_group.to_has_norm pi.seminormed_group, to_comm_group := pi.comm_group (λ (i : ι), normed_comm_group.to_comm_group), to_metric_space := metric_space_pi (λ (b : ι), normed_comm_group.to_metric_space), dist_eq := _}
Finite product of seminormed groups, using the sup norm.
Equations
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 has_norm Eᵐᵒᵖ
, as this is not always a good
choice of norm in the multiplicative seminormed_group E
case.
We could repeat this instance to provide a [seminormed_group E] : seminormed_group Eᵃᵒᵖ
instance,
but that case would likely never be used.
Equations
Equations
Equations
- mul_opposite.seminormed_add_comm_group = {to_has_norm := seminormed_add_group.to_has_norm mul_opposite.seminormed_add_group, to_add_comm_group := mul_opposite.add_comm_group E seminormed_add_comm_group.to_add_comm_group, to_pseudo_metric_space := mul_opposite.pseudo_metric_space seminormed_add_comm_group.to_pseudo_metric_space, dist_eq := _}
Equations
- mul_opposite.normed_add_comm_group = {to_has_norm := seminormed_add_comm_group.to_has_norm mul_opposite.seminormed_add_comm_group, to_add_comm_group := seminormed_add_comm_group.to_add_comm_group mul_opposite.seminormed_add_comm_group, to_metric_space := mul_opposite.metric_space normed_add_comm_group.to_metric_space, dist_eq := _}
Subgroups of normed groups #
A subgroup of a seminormed group is also a seminormed group, with the restriction of the norm.
Equations
A subgroup of a seminormed group is also a seminormed group, with the restriction of the norm.
Equations
If x
is an element of a subgroup s
of a seminormed group E
, its norm in
s
is equal to its norm in E
.
If x
is an element of a subgroup s
of a seminormed group E
, its norm
in s
is equal to its norm in E
.
This is a reversed version of the simp
lemma add_subgroup.coe_norm
for use by norm_cast
.
If x
is an element of a subgroup s
of a seminormed group E
, its norm in s
is equal to
its norm in E
.
This is a reversed version of the simp
lemma subgroup.coe_norm
for use by norm_cast
.
Equations
Equations
- subgroup.normed_group = normed_group.induced ↥s E s.subtype subgroup.normed_group._proof_1
Equations
- add_subgroup.normed_add_group = normed_add_group.induced ↥s E s.subtype add_subgroup.normed_add_group._proof_1
Equations
- subgroup.normed_comm_group = normed_comm_group.induced ↥s E s.subtype subgroup.normed_comm_group._proof_1
Equations
- add_subgroup.normed_add_comm_group = normed_add_comm_group.induced ↥s E s.subtype add_subgroup.normed_add_comm_group._proof_1
Submodules of normed groups #
A submodule of a seminormed group is also a seminormed group, with the restriction of the norm.
Equations
If x
is an element of a submodule s
of a normed group E
, its norm in E
is equal to its
norm in s
.
This is a reversed version of the simp
lemma submodule.coe_norm
for use by norm_cast
.
A submodule of a normed group is also a normed group, with the restriction of the norm.