Group seminorms #
This file defines norms and seminorms in a group. A group seminorm is a function to the reals which is positive-semidefinite and subadditive. A norm further only maps zero to zero.
Main declarations #
- AddGroupSeminorm: A function- ffrom an additive group- Gto the reals that preserves zero, takes nonnegative values, is subadditive and such that- f (-x) = f xfor all- x.
- NonarchAddGroupSeminorm: A function- ffrom an additive group- Gto the reals that preserves zero, takes nonnegative values, is nonarchimedean and such that- f (-x) = f xfor all- x.
- GroupSeminorm: A function- ffrom a group- Gto the reals that sends one to zero, takes nonnegative values, is submultiplicative and such that- f x⁻¹ = f xfor all- x.
- AddGroupNorm: A seminorm- fsuch that- f x = 0 → x = 0for all- x.
- NonarchAddGroupNorm: A nonarchimedean seminorm- fsuch that- f x = 0 → x = 0for all- x.
- GroupNorm: A seminorm- fsuch that- f x = 0 → x = 1for all- x.
Notes #
The corresponding hom classes are defined in Analysis.Order.Hom.Basic to be used by absolute
values.
We do not define NonarchAddGroupSeminorm as an extension of AddGroupSeminorm to avoid
having a superfluous add_le' field in the resulting structure. The same applies to
NonarchAddGroupNorm.
References #
- [H. H. Schaefer, Topological Vector Spaces][schaefer1966]
Tags #
norm, seminorm
A seminorm on an additive group G is a function f : G → ℝ that preserves zero, is
subadditive and such that f (-x) = f x for all x.
- toFun : G → ℝThe bare function of an AddGroupSeminorm.
- The image of zero is zero. 
- The seminorm is subadditive. 
- The seminorm is invariant under negation. 
Instances For
A seminorm on a group G is a function f : G → ℝ that sends one to zero, is submultiplicative
and such that f x⁻¹ = f x for all x.
- toFun : G → ℝThe bare function of a GroupSeminorm.
- The image of one is zero. 
- The seminorm applied to a product is dominated by the sum of the seminorm applied to the factors. 
- The seminorm is invariant under inversion. 
Instances For
A nonarchimedean seminorm on an additive group G is a function f : G → ℝ that preserves
zero, is nonarchimedean and such that f (-x) = f x for all x.
- The seminorm applied to a sum is dominated by the maximum of the function applied to the addends. 
- The seminorm is invariant under negation. 
Instances For
NOTE: We do not define NonarchAddGroupSeminorm as an extension of AddGroupSeminorm
to avoid having a superfluous add_le' field in the resulting structure. The same applies to
NonarchAddGroupNorm below.
A norm on an additive group G is a function f : G → ℝ that preserves zero, is subadditive
and such that f (-x) = f x and f x = 0 → x = 0 for all x.
- If the image under the seminorm is zero, then the argument is zero. 
Instances For
A seminorm on a group G is a function f : G → ℝ that sends one to zero, is submultiplicative
and such that f x⁻¹ = f x and f x = 0 → x = 1 for all x.
- If the image under the norm is zero, then the argument is one. 
Instances For
A nonarchimedean norm on an additive group G is a function f : G → ℝ that preserves zero, is
nonarchimedean and such that f (-x) = f x and f x = 0 → x = 0 for all x.
- If the image under the norm is zero, then the argument is zero. 
Instances For
NonarchAddGroupSeminormClass F α states that F is a type of nonarchimedean seminorms on
the additive group α.
You should extend this class when you extend NonarchAddGroupSeminorm.
- The image of zero is zero. 
- The seminorm is invariant under negation. 
Instances
NonarchAddGroupNormClass F α states that F is a type of nonarchimedean norms on the
additive group α.
You should extend this class when you extend NonarchAddGroupNorm.
- If the image under the norm is zero, then the argument is zero. 
Instances
Seminorms #
Equations
- GroupSeminorm.funLike = { coe := fun (f : GroupSeminorm E) => f.toFun, coe_injective' := ⋯ }
Equations
- AddGroupSeminorm.funLike = { coe := fun (f : AddGroupSeminorm E) => f.toFun, coe_injective' := ⋯ }
Equations
- GroupSeminorm.instPartialOrder = PartialOrder.lift (fun (f : GroupSeminorm E) => ⇑f) ⋯
Equations
- AddGroupSeminorm.instPartialOrder = PartialOrder.lift (fun (f : AddGroupSeminorm E) => ⇑f) ⋯
Equations
- GroupSeminorm.instInhabited = { default := 0 }
Equations
- AddGroupSeminorm.instInhabited = { default := 0 }
Equations
- GroupSeminorm.instAdd = { add := fun (p q : GroupSeminorm E) => { toFun := fun (x : E) => p x + q x, map_one' := ⋯, mul_le' := ⋯, inv' := ⋯ } }
Equations
- AddGroupSeminorm.instAdd = { add := fun (p q : AddGroupSeminorm E) => { toFun := fun (x : E) => p x + q x, map_zero' := ⋯, add_le' := ⋯, neg' := ⋯ } }
Equations
- GroupSeminorm.instMax = { max := fun (p q : GroupSeminorm E) => { toFun := ⇑p ⊔ ⇑q, map_one' := ⋯, mul_le' := ⋯, inv' := ⋯ } }
Equations
- AddGroupSeminorm.instMax = { max := fun (p q : AddGroupSeminorm E) => { toFun := ⇑p ⊔ ⇑q, map_zero' := ⋯, add_le' := ⋯, neg' := ⋯ } }
Equations
- GroupSeminorm.semilatticeSup = Function.Injective.semilatticeSup (fun (f : GroupSeminorm E) => ⇑f) ⋯ ⋯
Equations
- AddGroupSeminorm.semilatticeSup = Function.Injective.semilatticeSup (fun (f : AddGroupSeminorm E) => ⇑f) ⋯ ⋯
Composition of a group seminorm with a monoid homomorphism as a group seminorm.
Instances For
Composition of an additive group seminorm with an additive monoid homomorphism as an additive group seminorm.
Instances For
Equations
- GroupSeminorm.instMin = { min := fun (p q : GroupSeminorm E) => { toFun := fun (x : E) => ⨅ (y : E), p y + q (x / y), map_one' := ⋯, mul_le' := ⋯, inv' := ⋯ } }
Equations
- AddGroupSeminorm.instMin = { min := fun (p q : AddGroupSeminorm E) => { toFun := fun (x : E) => ⨅ (y : E), p y + q (x - y), map_zero' := ⋯, add_le' := ⋯, neg' := ⋯ } }
Equations
- GroupSeminorm.instLattice = { toSemilatticeSup := GroupSeminorm.semilatticeSup, inf := fun (x1 x2 : GroupSeminorm E) => x1 ⊓ x2, inf_le_left := ⋯, inf_le_right := ⋯, le_inf := ⋯ }
Equations
- AddGroupSeminorm.instLattice = { toSemilatticeSup := AddGroupSeminorm.semilatticeSup, inf := fun (x1 x2 : AddGroupSeminorm E) => x1 ⊓ x2, inf_le_left := ⋯, inf_le_right := ⋯, le_inf := ⋯ }
Any action on ℝ which factors through ℝ≥0 applies to an AddGroupSeminorm.
Equations
- AddGroupSeminorm.toSMul = { smul := fun (r : R) (p : AddGroupSeminorm E) => { toFun := fun (x : E) => r • p x, map_zero' := ⋯, add_le' := ⋯, neg' := ⋯ } }
Equations
- NonarchAddGroupSeminorm.funLike = { coe := fun (f : NonarchAddGroupSeminorm E) => f.toFun, coe_injective' := ⋯ }
Equations
- NonarchAddGroupSeminorm.instPartialOrder = PartialOrder.lift (fun (f : NonarchAddGroupSeminorm E) => ⇑f) ⋯
Equations
- NonarchAddGroupSeminorm.instInhabited = { default := 0 }
Equations
- NonarchAddGroupSeminorm.instMax = { max := fun (p q : NonarchAddGroupSeminorm E) => { toFun := ⇑p ⊔ ⇑q, map_zero' := ⋯, add_le_max' := ⋯, neg' := ⋯ } }
Equations
- NonarchAddGroupSeminorm.instSemilatticeSup = Function.Injective.semilatticeSup (fun (f : NonarchAddGroupSeminorm E) => ⇑f) ⋯ ⋯
Any action on ℝ which factors through ℝ≥0 applies to an AddGroupSeminorm.
Equations
- GroupSeminorm.instSMul = { smul := fun (r : R) (p : GroupSeminorm E) => { toFun := fun (x : E) => r • p x, map_one' := ⋯, mul_le' := ⋯, inv' := ⋯ } }
Any action on ℝ which factors through ℝ≥0 applies to a NonarchAddGroupSeminorm.
Equations
- NonarchAddGroupSeminorm.instSMul = { smul := fun (r : R) (p : NonarchAddGroupSeminorm E) => { toFun := fun (x : E) => r • p x, map_zero' := ⋯, add_le_max' := ⋯, neg' := ⋯ } }
Norms #
Equations
- AddGroupNorm.funLike = { coe := fun (f : AddGroupNorm E) => f.toFun, coe_injective' := ⋯ }
Equations
- GroupNorm.instPartialOrder = PartialOrder.lift (fun (f : GroupNorm E) => ⇑f) ⋯
Equations
- AddGroupNorm.instPartialOrder = PartialOrder.lift (fun (f : AddGroupNorm E) => ⇑f) ⋯
Equations
- GroupNorm.instAdd = { add := fun (p q : GroupNorm E) => let __src := p.toGroupSeminorm + q.toGroupSeminorm; { toGroupSeminorm := __src, eq_one_of_map_eq_zero' := ⋯ } }
Equations
- One or more equations did not get rendered due to their size.
Equations
- GroupNorm.instMax = { max := fun (p q : GroupNorm E) => let __src := p.toGroupSeminorm ⊔ q.toGroupSeminorm; { toGroupSeminorm := __src, eq_one_of_map_eq_zero' := ⋯ } }
Equations
- One or more equations did not get rendered due to their size.
Equations
- GroupNorm.instSemilatticeSup = Function.Injective.semilatticeSup (fun (f : GroupNorm E) => ⇑f) ⋯ ⋯
Equations
- AddGroupNorm.instSemilatticeSup = Function.Injective.semilatticeSup (fun (f : AddGroupNorm E) => ⇑f) ⋯ ⋯
Equations
- AddGroupNorm.instInhabited = { default := 1 }
Equations
- GroupNorm.instInhabited = { default := 1 }
Equations
- NonarchAddGroupNorm.funLike = { coe := fun (f : NonarchAddGroupNorm E) => f.toFun, coe_injective' := ⋯ }
Equations
- NonarchAddGroupNorm.instPartialOrder = PartialOrder.lift (fun (f : NonarchAddGroupNorm E) => ⇑f) ⋯
Equations
- One or more equations did not get rendered due to their size.
Equations
- NonarchAddGroupNorm.instSemilatticeSup = Function.Injective.semilatticeSup (fun (f : NonarchAddGroupNorm E) => ⇑f) ⋯ ⋯
Equations
- NonarchAddGroupNorm.instInhabitedOfDecidableEq = { default := 1 }