Normed (semi)groups #
In this file we define 10 classes:
Norm,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
SeminormedGroup and SeminormedAddGroup not extend Group and AddGroup), but we choose not
to for performance concerns.
Tags #
normed group
the ℝ-valued norm function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
the ℝ≥0-valued norm function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
the ℝ≥0∞-valued norm function.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A type E equipped with a continuous map ‖·‖ₑ : E → ℝ≥0∞
NB. We do not demand that the topology is somehow defined by the enorm:
for ℝ≥0∞ (the motivating example behind this definition), this is not true.
- continuous_enorm : Continuous enorm
Instances
An e-seminormed monoid is an additive monoid endowed with a continuous enorm. Note that we do not ask for the enorm to be positive definite: non-trivial elements may have enorm zero.
Instances
An enormed monoid is an additive monoid endowed with a continuous enorm,
which is positive definite: in other words, this is an ESeminormedAddMonoid with a positive
definiteness condition added.
Instances
An e-seminormed monoid is a monoid endowed with a continuous enorm. Note that we only ask for the enorm to be a semi-norm: non-trivial elements may have enorm zero.
Instances
An enormed monoid is a monoid endowed with a continuous enorm,
which is positive definite: in other words, this is an ESeminormedMonoid with a positive
definiteness condition added.
Instances
An e-seminormed commutative monoid is an additive commutative monoid endowed with a continuous enorm.
We don't have ESeminormedAddCommMonoid extend EMetricSpace, since the canonical instance ℝ≥0∞
is not an EMetricSpace. This is because ℝ≥0∞ carries the order topology, which is distinct from
the topology coming from edist.
Instances
An enormed commutative monoid is an additive commutative monoid endowed with a continuous enorm which is positive definite.
We don't have ENormedAddCommMonoid extend EMetricSpace, since the canonical instance ℝ≥0∞
is not an EMetricSpace. This is because ℝ≥0∞ carries the order topology, which is distinct from
the topology coming from edist.
Instances
An e-seminormed commutative monoid is a commutative monoid endowed with a continuous enorm.
Instances
An enormed commutative monoid is a commutative monoid endowed with a continuous enorm which is positive definite.
Instances
A seminormed group is an additive group endowed with a norm for which dist x y = ‖x - y‖
defines a pseudometric space structure.
- add : E → E → E
- zero : E
- neg : E → E
- sub : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
A seminormed group is a group endowed with a norm for which dist x y = ‖x / y‖ defines a
pseudometric space structure.
- mul : E → E → E
- one : E
- inv : E → E
- div : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
A normed group is an additive group endowed with a norm for which dist x y = ‖x - y‖ defines a
metric space structure.
- add : E → E → E
- zero : E
- neg : E → E
- sub : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
A normed group is a group endowed with a norm for which dist x y = ‖x / y‖ defines a metric
space structure.
- mul : E → E → E
- one : E
- inv : E → E
- div : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
A seminormed group is an additive group endowed with a norm for which dist x y = ‖x - y‖
defines a pseudometric space structure.
- add : E → E → E
- zero : E
- neg : E → E
- sub : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
A seminormed group is a group endowed with a norm for which dist x y = ‖x / y‖
defines a pseudometric space structure.
- mul : E → E → E
- one : E
- inv : E → E
- div : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
A normed group is an additive group endowed with a norm for which dist x y = ‖x - y‖ defines a
metric space structure.
- add : E → E → E
- zero : E
- neg : E → E
- sub : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
A normed group is a group endowed with a norm for which dist x y = ‖x / y‖ defines a metric
space structure.
- mul : E → E → E
- one : E
- inv : E → E
- div : E → E → E
- uniformity_dist : uniformity E = ⨅ (ε : ℝ), ⨅ (_ : ε > 0), Filter.principal {p : E × E | dist p.1 p.2 < ε}
- toBornology : Bornology E
The distance function is induced by the norm.
Instances
Equations
- NormedGroup.toSeminormedGroup = { toNorm := inst✝.toNorm, toGroup := inst✝.toGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, dist_eq := ⋯ }
Equations
- NormedAddGroup.toSeminormedAddGroup = { toNorm := inst✝.toNorm, toAddGroup := inst✝.toAddGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, dist_eq := ⋯ }
Equations
- NormedCommGroup.toSeminormedCommGroup = { toNorm := inst✝.toNorm, toCommGroup := inst✝.toCommGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, dist_eq := ⋯ }
Equations
- NormedAddCommGroup.toSeminormedAddCommGroup = { toNorm := inst✝.toNorm, toAddCommGroup := inst✝.toAddCommGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, dist_eq := ⋯ }
Equations
- SeminormedCommGroup.toSeminormedGroup = { toNorm := inst✝.toNorm, toGroup := inst✝.toGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, dist_eq := ⋯ }
Equations
- SeminormedAddCommGroup.toSeminormedAddGroup = { toNorm := inst✝.toNorm, toAddGroup := inst✝.toAddGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, dist_eq := ⋯ }
Equations
- NormedCommGroup.toNormedGroup = { toNorm := inst✝.toNorm, toGroup := inst✝.toGroup, toMetricSpace := inst✝.toMetricSpace, dist_eq := ⋯ }
Equations
- NormedAddCommGroup.toNormedAddGroup = { toNorm := inst✝.toNorm, toAddGroup := inst✝.toAddGroup, toMetricSpace := inst✝.toMetricSpace, dist_eq := ⋯ }
Construct a NormedGroup from a SeminormedGroup satisfying ∀ x, ‖x‖ = 0 → x = 1. This
avoids having to go back to the (Pseudo)MetricSpace level when declaring a NormedGroup
instance as a special case of a more general SeminormedGroup instance.
Equations
- NormedGroup.ofSeparation h = { toNorm := inst✝.toNorm, toGroup := inst✝.toGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, eq_of_dist_eq_zero := ⋯, dist_eq := ⋯ }
Instances For
Construct a NormedAddGroup from a SeminormedAddGroup
satisfying ∀ x, ‖x‖ = 0 → x = 0. This avoids having to go back to the (Pseudo)MetricSpace
level when declaring a NormedAddGroup instance as a special case of a more general
SeminormedAddGroup instance.
Equations
- NormedAddGroup.ofSeparation h = { toNorm := inst✝.toNorm, toAddGroup := inst✝.toAddGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, eq_of_dist_eq_zero := ⋯, dist_eq := ⋯ }
Instances For
Construct a NormedCommGroup from a SeminormedCommGroup satisfying
∀ x, ‖x‖ = 0 → x = 1. This avoids having to go back to the (Pseudo)MetricSpace level when
declaring a NormedCommGroup instance as a special case of a more general SeminormedCommGroup
instance.
Equations
- NormedCommGroup.ofSeparation h = { toNorm := inst✝.toNorm, toCommGroup := inst✝.toCommGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, eq_of_dist_eq_zero := ⋯, dist_eq := ⋯ }
Instances For
Construct a NormedAddCommGroup from a
SeminormedAddCommGroup satisfying ∀ x, ‖x‖ = 0 → x = 0. This avoids having to go back to the
(Pseudo)MetricSpace level when declaring a NormedAddCommGroup instance as a special case
of a more general SeminormedAddCommGroup instance.
Equations
- NormedAddCommGroup.ofSeparation h = { toNorm := inst✝.toNorm, toAddCommGroup := inst✝.toAddCommGroup, toPseudoMetricSpace := inst✝.toPseudoMetricSpace, eq_of_dist_eq_zero := ⋯, dist_eq := ⋯ }
Instances For
Construct a seminormed group from a multiplication-invariant distance.
Equations
- SeminormedGroup.ofMulDist h₁ h₂ = { toNorm := inst✝², toGroup := inst✝¹, toPseudoMetricSpace := inst✝, dist_eq := ⋯ }
Instances For
Construct a seminormed group from a translation-invariant distance.
Equations
- SeminormedAddGroup.ofAddDist h₁ h₂ = { toNorm := inst✝², toAddGroup := inst✝¹, toPseudoMetricSpace := inst✝, dist_eq := ⋯ }
Instances For
Construct a seminormed group from a multiplication-invariant pseudodistance.
Equations
- SeminormedGroup.ofMulDist' h₁ h₂ = { toNorm := inst✝², toGroup := inst✝¹, toPseudoMetricSpace := inst✝, dist_eq := ⋯ }
Instances For
Construct a seminormed group from a translation-invariant pseudodistance.
Equations
- SeminormedAddGroup.ofAddDist' h₁ h₂ = { toNorm := inst✝², toAddGroup := inst✝¹, toPseudoMetricSpace := inst✝, dist_eq := ⋯ }
Instances For
Construct a seminormed group from a multiplication-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a seminormed group from a translation-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a seminormed group from a multiplication-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a seminormed group from a translation-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a multiplication-invariant distance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a translation-invariant distance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a multiplication-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a translation-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a multiplication-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a translation-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a multiplication-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct a normed group from a translation-invariant pseudodistance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
UniformSpace instance on E).
Equations
- One or more equations did not get rendered due to their size.
Instances For
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 UniformSpace instance on E).
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
UniformSpace instance on E).
Equations
- One or more equations did not get rendered due to their size.
Instances For
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 UniformSpace instance on E).
Equations
- One or more equations did not get rendered due to their size.
Instances For
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 UniformSpace instance on
E).
Equations
- One or more equations did not get rendered due to their size.
Instances For
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 UniformSpace
instance on E).
Equations
- One or more equations did not get rendered due to their size.
Instances For
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 UniformSpace instance on
E).
Equations
- f.toNormedCommGroup = { toNorm := f.toNormedGroup.toNorm, toGroup := f.toNormedGroup.toGroup, mul_comm := ⋯, toMetricSpace := f.toNormedGroup.toMetricSpace, dist_eq := ⋯ }
Instances For
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 UniformSpace
instance on E).
Equations
- f.toNormedAddCommGroup = { toNorm := f.toNormedAddGroup.toNorm, toAddGroup := f.toNormedAddGroup.toAddGroup, add_comm := ⋯, toMetricSpace := f.toNormedAddGroup.toMetricSpace, dist_eq := ⋯ }
Instances For
Alias of dist_eq_norm_sub.
Alias of dist_eq_norm_sub'.
Alias of norm_le_norm_add_norm_sub'.
Alias of norm_le_norm_add_norm_sub.
An analogue of norm_le_mul_norm_add for the multiplication from the left.
An analogue of norm_le_add_norm_add for the addition from the left.
The norm of a seminormed group as a group seminorm.
Equations
- normGroupSeminorm E = { toFun := norm, map_one' := ⋯, mul_le' := ⋯, inv' := ⋯ }
Instances For
The norm of a seminormed group as an additive group seminorm.
Equations
- normAddGroupSeminorm E = { toFun := norm, map_zero' := ⋯, add_le' := ⋯, neg' := ⋯ }
Instances For
Alias of nndist_eq_nnnorm_sub.
Alias of nnnorm_le_nnnorm_add_nnnorm_sub'.
Alias of nnnorm_le_nnnorm_add_nnnorm_sub.
An analogue of nnnorm_le_mul_nnnorm_add for the multiplication from the left.
An analogue of nnnorm_le_add_nnnorm_add for the addition from the left.
Equations
- instENormENNReal = { enorm := fun (x : ENNReal) => x }
Equations
- One or more equations did not get rendered due to their size.
A group homomorphism from a Group to a SeminormedGroup induces a SeminormedGroup
structure on the domain.
Equations
- SeminormedGroup.induced E F f = { norm := fun (x : E) => ‖f x‖, toGroup := inst✝², toPseudoMetricSpace := PseudoMetricSpace.induced (⇑f) inst✝¹.toPseudoMetricSpace, dist_eq := ⋯ }
Instances For
A group homomorphism from an AddGroup to a
SeminormedAddGroup induces a SeminormedAddGroup structure on the domain.
Equations
- SeminormedAddGroup.induced E F f = { norm := fun (x : E) => ‖f x‖, toAddGroup := inst✝², toPseudoMetricSpace := PseudoMetricSpace.induced (⇑f) inst✝¹.toPseudoMetricSpace, dist_eq := ⋯ }
Instances For
A group homomorphism from a CommGroup to a SeminormedGroup induces a
SeminormedCommGroup structure on the domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A group homomorphism from an AddCommGroup to a
SeminormedAddGroup induces a SeminormedAddCommGroup structure on the domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An injective group homomorphism from a Group to a NormedGroup induces a NormedGroup
structure on the domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An injective group homomorphism from an AddGroup to a
NormedAddGroup induces a NormedAddGroup structure on the domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An injective group homomorphism from a CommGroup to a NormedGroup induces a
NormedCommGroup structure on the domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An injective group homomorphism from a CommGroup to a
NormedCommGroup induces a NormedCommGroup structure on the domain.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Real.normedAddCommGroup = { toNorm := Real.norm, toAddCommGroup := Real.instAddCommGroup, toMetricSpace := Real.metricSpace, dist_eq := Real.normedAddCommGroup._proof_1 }
Equations
- NNReal.instNNNorm = { nnnorm := fun (x : NNReal) => x }
Alias of the forward direction of norm_div_eq_zero_iff.
The norm of a normed group as a group norm.
Equations
- normGroupNorm E = { toGroupSeminorm := normGroupSeminorm E, eq_one_of_map_eq_zero' := ⋯ }
Instances For
The norm of a normed group as an additive group norm.
Equations
- normAddGroupNorm E = { toAddGroupSeminorm := normAddGroupSeminorm E, eq_zero_of_map_eq_zero' := ⋯ }
Instances For
Some relations with HasCompactSupport
Alias of the reverse direction of hasCompactSupport_norm_iff.
positivity extensions #
Extension for the positivity tactic: multiplicative norms are always nonnegative, and positive
on non-one inputs.
Instances For
Extension for the positivity tactic: additive norms are always nonnegative, and positive
on non-zero inputs.