Seminorms #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
This file defines seminorms.
A seminorm is a function to the reals which is positive-semidefinite, absolutely homogeneous, and subadditive. They are closely related to convex sets and a topological vector space is locally convex if and only if its topology is induced by a family of seminorms.
Main declarations #
For a module over a normed ring:
seminorm
: A function to the reals that is positive-semidefinite, absolutely homogeneous, and subadditive.norm_seminorm 𝕜 E
: The norm onE
as a seminorm.
References #
Tags #
seminorm, locally convex, LCTVS
- to_fun : E → ℝ
- map_zero' : self.to_fun 0 = 0
- add_le' : ∀ (r s : E), self.to_fun (r + s) ≤ self.to_fun r + self.to_fun s
- neg' : ∀ (r : E), self.to_fun (-r) = self.to_fun r
- smul' : ∀ (a : 𝕜) (x : E), self.to_fun (a • x) = ‖a‖ * self.to_fun x
A seminorm on a module over a normed ring is a function to the reals that is positive semidefinite, positive homogeneous, and subadditive.
Instances for seminorm
- seminorm.has_sizeof_inst
- seminorm.seminorm_class
- seminorm.has_coe_to_fun
- seminorm.has_zero
- seminorm.inhabited
- seminorm.has_smul
- seminorm.is_scalar_tower
- seminorm.has_add
- seminorm.add_monoid
- seminorm.ordered_cancel_add_comm_monoid
- seminorm.mul_action
- seminorm.distrib_mul_action
- seminorm.module
- seminorm.has_sup
- seminorm.partial_order
- seminorm.semilattice_sup
- seminorm.order_bot
- seminorm.has_inf
- seminorm.lattice
- seminorm.has_Sup
- seminorm.conditionally_complete_lattice
- coe : F → Π (a : E), (λ (_x : E), ℝ) a
- coe_injective' : function.injective seminorm_class.coe
- map_add_le_add : ∀ (f : F) (a b : E), ⇑f (a + b) ≤ ⇑f a + ⇑f b
- map_zero : ∀ (f : F), ⇑f 0 = 0
- map_neg_eq_map : ∀ (f : F) (a : E), ⇑f (-a) = ⇑f a
- map_smul_eq_mul : ∀ (f : F) (a : 𝕜) (x : E), ⇑f (a • x) = ‖a‖ * ⇑f x
seminorm_class F 𝕜 E
states that F
is a type of seminorms on the 𝕜
-module E.
You should extend this class when you extend seminorm
.
Instances of this typeclass
Instances of other typeclasses for seminorm_class
- seminorm_class.has_sizeof_inst
Alternative constructor for a seminorm
on an add_comm_group E
that is a module over a
semi_norm_ring 𝕜
.
Alternative constructor for a seminorm
over a normed field 𝕜
that only assumes f 0 = 0
and an inequality for the scalar multiplication.
Equations
- seminorm.of_smul_le f map_zero add_le smul_le = seminorm.of f add_le _
Equations
- seminorm.seminorm_class = {coe := λ (f : seminorm 𝕜 E), f.to_fun, coe_injective' := _, map_add_le_add := _, map_zero := _, map_neg_eq_map := _, map_smul_eq_mul := _}
Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun
.
Equations
Equations
- seminorm.inhabited = {default := 0}
Any action on ℝ
which factors through ℝ≥0
applies to a seminorm.
Equations
- seminorm.add_monoid = function.injective.add_monoid coe_fn seminorm.add_monoid._proof_2 seminorm.add_monoid._proof_3 seminorm.coe_add seminorm.add_monoid._proof_4
Equations
- seminorm.ordered_cancel_add_comm_monoid = function.injective.ordered_cancel_add_comm_monoid coe_fn seminorm.ordered_cancel_add_comm_monoid._proof_2 seminorm.ordered_cancel_add_comm_monoid._proof_3 seminorm.coe_add seminorm.ordered_cancel_add_comm_monoid._proof_4
Equations
- seminorm.mul_action = function.injective.mul_action coe_fn seminorm.mul_action._proof_1 seminorm.mul_action._proof_2
coe_fn
as an add_monoid_hom
. Helper definition for showing that seminorm 𝕜 E
is
a module.
Equations
- seminorm.coe_fn_add_monoid_hom 𝕜 E = {to_fun := coe_fn seminorm.has_coe_to_fun, map_zero' := _, map_add' := _}
Equations
- seminorm.distrib_mul_action = function.injective.distrib_mul_action (seminorm.coe_fn_add_monoid_hom 𝕜 E) _ seminorm.distrib_mul_action._proof_1
Equations
- seminorm.module = function.injective.module R (seminorm.coe_fn_add_monoid_hom 𝕜 E) _ seminorm.module._proof_1
Equations
- seminorm.partial_order = partial_order.lift coe_fn seminorm.partial_order._proof_1
Equations
- seminorm.semilattice_sup = function.injective.semilattice_sup coe_fn seminorm.semilattice_sup._proof_1 seminorm.coe_sup
Composition of a seminorm with a linear map is a seminorm.
The composition as an add_monoid_hom
.
Equations
- seminorm.order_bot = {bot := 0, bot_le := _}
Auxiliary lemma to show that the infimum of seminorms is well-defined.
Equations
- seminorm.lattice = {sup := semilattice_sup.sup seminorm.semilattice_sup, le := semilattice_sup.le seminorm.semilattice_sup, lt := semilattice_sup.lt seminorm.semilattice_sup, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := has_inf.inf seminorm.has_inf, inf_le_left := _, inf_le_right := _, le_inf := _}
We define the supremum of an arbitrary subset of seminorm 𝕜 E
as follows:
- if
s
isbdd_above
as a set of functionsE → ℝ
(that is, ifs
is pointwise bounded above), we take the pointwise supremum of all elements ofs
, and we prove that it is indeed a seminorm. - otherwise, we take the zero seminorm
⊥
.
There are two things worth mentionning here:
- First, it is not trivial at first that
s
being bounded above by a function implies being bounded above as a seminorm. We show this inseminorm.bdd_above_iff
by using that theSup s
as defined here is then a bounding seminorm fors
. So it is important to make the case disjunction onbdd_above (coe_fn '' s : set (E → ℝ))
and notbdd_above s
. - Since the pointwise
Sup
already gives0
at points where a family of functions is not bounded above, one could hope that just using the pointwiseSup
would work here, without the need for an additional case disjunction. As discussed on Zulip, this doesn't work because this can give a function which does not satisfy the seminorm axioms (typically sub-additivity).
seminorm 𝕜 E
is a conditionally complete lattice.
Note that, while inf
, sup
and Sup
have good definitional properties (corresponding to
seminorm.has_inf
, seminorm.has_sup
and seminorm.has_Sup
respectively), Inf s
is just
defined as the supremum of the lower bounds of s
, which is not really useful in practice. If you
need to use Inf
on seminorms, then you should probably provide a more workable definition first,
but this is unlikely to happen so we keep the "bad" definition for now.
Equations
- seminorm.conditionally_complete_lattice = conditionally_complete_lattice_of_lattice_of_Sup (seminorm 𝕜 E) seminorm.is_lub_Sup
Seminorm ball #
The ball of radius r
at x
with respect to seminorm p
is the set of elements y
with
p (y - x) < r
.
The closed ball of radius r
at x
with respect to seminorm p
is the set of elements y
with p (y - x) ≤ r
.
Equations
- p.closed_ball x r = {y : E | ⇑p (y - x) ≤ r}
The image of a ball under addition with a singleton is another ball.
The image of a closed ball under addition with a singleton is another closed ball.
Seminorm-balls at the origin are balanced.
Closed seminorm-balls at the origin are balanced.
Seminorm-balls at the origin are absorbent.
Closed seminorm-balls at the origin are absorbent.
Seminorm-balls containing the origin are absorbent.
Seminorm-balls containing the origin are absorbent.
A seminorm is convex. Also see convex_on_norm
.
Seminorm-balls are convex.
Closed seminorm-balls are convex.
Reinterpret a seminorm over a field 𝕜'
as a seminorm over a smaller field 𝕜
. This will
typically be used with is_R_or_C 𝕜'
and 𝕜 = ℝ
.
Continuity criterions for seminorms #
The norm as a seminorm #
The norm of a seminormed group as a seminorm.
Equations
- norm_seminorm 𝕜 E = {to_fun := (norm_add_group_seminorm E).to_fun, map_zero' := _, add_le' := _, neg' := _, smul' := _}
Balls at the origin are absorbent.
Balls containing the origin are absorbent.
Balls at the origin are balanced.