mathlib3 documentation

analysis.seminorm

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:

References #

Tags #

seminorm, locally convex, LCTVS

@[nolint]
def seminorm.to_add_group_seminorm {𝕜 : Type u_13} {E : Type u_14} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] (self : seminorm 𝕜 E) :
structure seminorm (𝕜 : Type u_13) (E : Type u_14) [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
Type u_14

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
@[nolint, instance]
def seminorm_class.to_add_group_seminorm_class (F : Type u_13) (𝕜 : out_param (Type u_14)) (E : out_param (Type u_15)) [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [self : seminorm_class F 𝕜 E] :
@[class]
structure seminorm_class (F : Type u_13) (𝕜 : out_param (Type u_14)) (E : out_param (Type u_15)) [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
Type (max u_13 u_15)

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
def seminorm.of {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (f : E ) (add_le : (x y : E), f (x + y) f x + f y) (smul : (a : 𝕜) (x : E), f (a x) = a * f x) :
seminorm 𝕜 E

Alternative constructor for a seminorm on an add_comm_group E that is a module over a semi_norm_ring 𝕜.

Equations
def seminorm.of_smul_le {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (f : E ) (map_zero : f 0 = 0) (add_le : (x y : E), f (x + y) f x + f y) (smul_le : (r : 𝕜) (x : E), f (r x) r * f x) :
seminorm 𝕜 E

Alternative constructor for a seminorm over a normed field 𝕜 that only assumes f 0 = 0 and an inequality for the scalar multiplication.

Equations
@[protected, instance]
def seminorm.seminorm_class {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
seminorm_class (seminorm 𝕜 E) 𝕜 E
Equations
@[protected, instance]
def seminorm.has_coe_to_fun {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
has_coe_to_fun (seminorm 𝕜 E) (λ (_x : seminorm 𝕜 E), E )

Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun.

Equations
@[ext]
theorem seminorm.ext {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] {p q : seminorm 𝕜 E} (h : (x : E), p x = q x) :
p = q
@[protected, instance]
def seminorm.has_zero {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
Equations
@[simp]
theorem seminorm.coe_zero {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
0 = 0
@[simp]
theorem seminorm.zero_apply {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] (x : E) :
0 x = 0
@[protected, instance]
def seminorm.inhabited {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
Equations
@[protected, instance]
def seminorm.has_smul {R : Type u_1} {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [has_smul R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] :
has_smul R (seminorm 𝕜 E)

Any action on which factors through ℝ≥0 applies to a seminorm.

Equations
@[protected, instance]
def seminorm.is_scalar_tower {R : Type u_1} {R' : Type u_2} {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [has_smul R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] [has_smul R' ] [has_smul R' nnreal] [is_scalar_tower R' nnreal ] [has_smul R R'] [is_scalar_tower R R' ] :
theorem seminorm.coe_smul {R : Type u_1} {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [has_smul R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] (r : R) (p : seminorm 𝕜 E) :
(r p) = r p
@[simp]
theorem seminorm.smul_apply {R : Type u_1} {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [has_smul R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] (r : R) (p : seminorm 𝕜 E) (x : E) :
(r p) x = r p x
@[protected, instance]
def seminorm.has_add {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
has_add (seminorm 𝕜 E)
Equations
theorem seminorm.coe_add {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] (p q : seminorm 𝕜 E) :
(p + q) = p + q
@[simp]
theorem seminorm.add_apply {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] (p q : seminorm 𝕜 E) (x : E) :
(p + q) x = p x + q x
@[protected, instance]
def seminorm.add_monoid {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
Equations
@[protected, instance]
Equations
@[protected, instance]
def seminorm.mul_action {R : Type u_1} {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [monoid R] [mul_action R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] :
mul_action R (seminorm 𝕜 E)
Equations
def seminorm.coe_fn_add_monoid_hom (𝕜 : Type u_3) (E : Type u_7) [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
seminorm 𝕜 E →+ E

coe_fn as an add_monoid_hom. Helper definition for showing that seminorm 𝕜 E is a module.

Equations
@[simp]
theorem seminorm.coe_fn_add_monoid_hom_apply (𝕜 : Type u_3) (E : Type u_7) [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] (x : seminorm 𝕜 E) (ᾰ : E) :
@[protected, instance]
Equations
@[protected, instance]
def seminorm.module {R : Type u_1} {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [semiring R] [module R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] :
module R (seminorm 𝕜 E)
Equations
@[protected, instance]
def seminorm.has_sup {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
has_sup (seminorm 𝕜 E)
Equations
@[simp]
theorem seminorm.coe_sup {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] (p q : seminorm 𝕜 E) :
(p q) = p q
theorem seminorm.sup_apply {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] (p q : seminorm 𝕜 E) (x : E) :
(p q) x = p x q x
theorem seminorm.smul_sup {R : Type u_1} {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] [has_smul R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] (r : R) (p q : seminorm 𝕜 E) :
r (p q) = r p r q
@[protected, instance]
def seminorm.partial_order {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
Equations
@[simp, norm_cast]
theorem seminorm.coe_le_coe {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] {p q : seminorm 𝕜 E} :
p q p q
@[simp, norm_cast]
theorem seminorm.coe_lt_coe {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] {p q : seminorm 𝕜 E} :
p < q p < q
theorem seminorm.le_def {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] {p q : seminorm 𝕜 E} :
p q (x : E), p x q x
theorem seminorm.lt_def {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] {p q : seminorm 𝕜 E} :
p < q p q (x : E), p x < q x
@[protected, instance]
def seminorm.semilattice_sup {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_group E] [has_smul 𝕜 E] :
Equations
def seminorm.comp {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) :
seminorm 𝕜 E

Composition of a seminorm with a linear map is a seminorm.

Equations
theorem seminorm.coe_comp {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) :
(p.comp f) = p f
@[simp]
theorem seminorm.comp_apply {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) (x : E) :
(p.comp f) x = p (f x)
@[simp]
theorem seminorm.comp_id {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) :
@[simp]
theorem seminorm.comp_zero {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p : seminorm 𝕜₂ E₂) :
p.comp 0 = 0
@[simp]
theorem seminorm.zero_comp {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (f : E →ₛₗ[σ₁₂] E₂) :
0.comp f = 0
theorem seminorm.comp_comp {𝕜 : Type u_3} {𝕜₂ : Type u_4} {𝕜₃ : Type u_5} {E : Type u_7} {E₂ : Type u_8} {E₃ : Type u_9} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] [semi_normed_ring 𝕜₃] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] {σ₂₃ : 𝕜₂ →+* 𝕜₃} [ring_hom_isometric σ₂₃] {σ₁₃ : 𝕜 →+* 𝕜₃} [ring_hom_isometric σ₁₃] [add_comm_group E] [add_comm_group E₂] [add_comm_group E₃] [module 𝕜 E] [module 𝕜₂ E₂] [module 𝕜₃ E₃] [ring_hom_comp_triple σ₁₂ σ₂₃ σ₁₃] (p : seminorm 𝕜₃ E₃) (g : E₂ →ₛₗ[σ₂₃] E₃) (f : E →ₛₗ[σ₁₂] E₂) :
p.comp (g.comp f) = (p.comp g).comp f
theorem seminorm.add_comp {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p q : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) :
(p + q).comp f = p.comp f + q.comp f
theorem seminorm.comp_add_le {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p : seminorm 𝕜₂ E₂) (f g : E →ₛₗ[σ₁₂] E₂) :
p.comp (f + g) p.comp f + p.comp g
theorem seminorm.smul_comp {R : Type u_1} {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] [has_smul R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) (c : R) :
(c p).comp f = c p.comp f
theorem seminorm.comp_mono {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] {p q : seminorm 𝕜₂ E₂} (f : E →ₛₗ[σ₁₂] E₂) (hp : p q) :
p.comp f q.comp f
def seminorm.pullback {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (f : E →ₛₗ[σ₁₂] E₂) :
seminorm 𝕜₂ E₂ →+ seminorm 𝕜 E

The composition as an add_monoid_hom.

Equations
@[simp]
theorem seminorm.pullback_apply {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (f : E →ₛₗ[σ₁₂] E₂) (p : seminorm 𝕜₂ E₂) :
@[protected, instance]
def seminorm.order_bot {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] :
Equations
@[simp]
theorem seminorm.coe_bot {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] :
theorem seminorm.bot_eq_zero {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] :
= 0
theorem seminorm.smul_le_smul {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {p q : seminorm 𝕜 E} {a b : nnreal} (hpq : p q) (hab : a b) :
a p b q
theorem seminorm.finset_sup_apply {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) (x : E) :
(s.sup p) x = (s.sup (λ (i : ι), (p i) x, _⟩))
theorem seminorm.finset_sup_le_sum {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) :
s.sup p s.sum (λ (i : ι), p i)
theorem seminorm.finset_sup_apply_le {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {p : ι seminorm 𝕜 E} {s : finset ι} {x : E} {a : } (ha : 0 a) (h : (i : ι), i s (p i) x a) :
(s.sup p) x a
theorem seminorm.finset_sup_apply_lt {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {p : ι seminorm 𝕜 E} {s : finset ι} {x : E} {a : } (ha : 0 < a) (h : (i : ι), i s (p i) x < a) :
(s.sup p) x < a
theorem seminorm.norm_sub_map_le_sub {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) (x y : E) :
p x - p y p (x - y)
theorem seminorm.comp_smul {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_comm_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) (c : 𝕜₂) :
p.comp (c f) = c‖₊ p.comp f
theorem seminorm.comp_smul_apply {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [semi_normed_comm_ring 𝕜₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] [add_comm_group E] [add_comm_group E₂] [module 𝕜 E] [module 𝕜₂ E₂] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) (c : 𝕜₂) (x : E) :
(p.comp (c f)) x = c * p (f x)
theorem seminorm.bdd_below_range_add {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {p q : seminorm 𝕜 E} {x : E} :
bdd_below (set.range (λ (u : E), p u + q (x - u)))

Auxiliary lemma to show that the infimum of seminorms is well-defined.

@[protected, instance]
noncomputable def seminorm.has_inf {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] :
has_inf (seminorm 𝕜 E)
Equations
@[simp]
theorem seminorm.inf_apply {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p q : seminorm 𝕜 E) (x : E) :
(p q) x = (u : E), p u + q (x - u)
theorem seminorm.smul_inf {R : Type u_1} {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [has_smul R ] [has_smul R nnreal] [is_scalar_tower R nnreal ] (r : R) (p q : seminorm 𝕜 E) :
r (p q) = r p r q
@[protected, instance]
noncomputable def seminorm.has_Sup {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] :
has_Sup (seminorm 𝕜 E)

We define the supremum of an arbitrary subset of seminorm 𝕜 E as follows:

  • if s is bdd_above as a set of functions E → ℝ (that is, if s is pointwise bounded above), we take the pointwise supremum of all elements of s, 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 in seminorm.bdd_above_iff by using that the Sup s as defined here is then a bounding seminorm for s. So it is important to make the case disjunction on bdd_above (coe_fn '' s : set (E → ℝ)) and not bdd_above s.
  • Since the pointwise Sup already gives 0 at points where a family of functions is not bounded above, one could hope that just using the pointwise Sup 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).
Equations
@[protected]
theorem seminorm.coe_Sup_eq' {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {s : set (seminorm 𝕜 E)} (hs : bdd_above (coe_fn '' s)) :
@[protected]
theorem seminorm.bdd_above_iff {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {s : set (seminorm 𝕜 E)} :
@[protected]
theorem seminorm.coe_Sup_eq {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {s : set (seminorm 𝕜 E)} (hs : bdd_above s) :
@[protected]
theorem seminorm.coe_supr_eq {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {ι : Type u_1} {p : ι seminorm 𝕜 E} (hp : bdd_above (set.range p)) :
( (i : ι), p i) = (i : ι), (p i)
@[protected, instance]
noncomputable def seminorm.conditionally_complete_lattice {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] :

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 ball #

def seminorm.ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) (x : E) (r : ) :
set E

The ball of radius r at x with respect to seminorm p is the set of elements y with p (y - x) < r.

Equations
def seminorm.closed_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) (x : E) (r : ) :
set E

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
@[simp]
theorem seminorm.mem_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {x y : E} {r : } :
y p.ball x r p (y - x) < r
@[simp]
theorem seminorm.mem_closed_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {x y : E} {r : } :
y p.closed_ball x r p (y - x) r
theorem seminorm.mem_ball_self {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {x : E} {r : } (hr : 0 < r) :
x p.ball x r
theorem seminorm.mem_closed_ball_self {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {x : E} {r : } (hr : 0 r) :
theorem seminorm.mem_ball_zero {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {y : E} {r : } :
y p.ball 0 r p y < r
theorem seminorm.mem_closed_ball_zero {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {y : E} {r : } :
y p.closed_ball 0 r p y r
theorem seminorm.ball_zero_eq {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {r : } :
p.ball 0 r = {y : E | p y < r}
theorem seminorm.closed_ball_zero_eq {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {r : } :
p.closed_ball 0 r = {y : E | p y r}
theorem seminorm.ball_subset_closed_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) (x : E) (r : ) :
p.ball x r p.closed_ball x r
theorem seminorm.closed_ball_eq_bInter_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) (x : E) (r : ) :
p.closed_ball x r = (ρ : ) (H : ρ > r), p.ball x ρ
@[simp]
theorem seminorm.ball_zero' {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {r : } (x : E) (hr : 0 < r) :
@[simp]
theorem seminorm.closed_ball_zero' {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {r : } (x : E) (hr : 0 < r) :
theorem seminorm.ball_smul {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {c : nnreal} (hc : 0 < c) (r : ) (x : E) :
(c p).ball x r = p.ball x (r / c)
theorem seminorm.closed_ball_smul {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) {c : nnreal} (hc : 0 < c) (r : ) (x : E) :
(c p).closed_ball x r = p.closed_ball x (r / c)
theorem seminorm.ball_sup {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p q : seminorm 𝕜 E) (e : E) (r : ) :
(p q).ball e r = p.ball e r q.ball e r
theorem seminorm.closed_ball_sup {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p q : seminorm 𝕜 E) (e : E) (r : ) :
(p q).closed_ball e r = p.closed_ball e r q.closed_ball e r
theorem seminorm.ball_finset_sup' {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) (H : s.nonempty) (e : E) (r : ) :
(s.sup' H p).ball e r = s.inf' H (λ (i : ι), (p i).ball e r)
theorem seminorm.closed_ball_finset_sup' {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) (H : s.nonempty) (e : E) (r : ) :
(s.sup' H p).closed_ball e r = s.inf' H (λ (i : ι), (p i).closed_ball e r)
theorem seminorm.ball_mono {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {x : E} {p : seminorm 𝕜 E} {r₁ r₂ : } (h : r₁ r₂) :
p.ball x r₁ p.ball x r₂
theorem seminorm.closed_ball_mono {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {x : E} {p : seminorm 𝕜 E} {r₁ r₂ : } (h : r₁ r₂) :
p.closed_ball x r₁ p.closed_ball x r₂
theorem seminorm.ball_antitone {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {x : E} {r : } {p q : seminorm 𝕜 E} (h : q p) :
p.ball x r q.ball x r
theorem seminorm.closed_ball_antitone {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {x : E} {r : } {p q : seminorm 𝕜 E} (h : q p) :
theorem seminorm.ball_add_ball_subset {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) (r₁ r₂ : ) (x₁ x₂ : E) :
p.ball x₁ r₁ + p.ball x₂ r₂ p.ball (x₁ + x₂) (r₁ + r₂)
theorem seminorm.closed_ball_add_closed_ball_subset {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) (r₁ r₂ : ) (x₁ x₂ : E) :
p.closed_ball x₁ r₁ + p.closed_ball x₂ r₂ p.closed_ball (x₁ + x₂) (r₁ + r₂)
theorem seminorm.sub_mem_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] (p : seminorm 𝕜 E) (x₁ x₂ y : E) (r : ) :
x₁ - x₂ p.ball y r x₁ p.ball (x₂ + y) r
theorem seminorm.vadd_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {x y : E} {r : } (p : seminorm 𝕜 E) :
x +ᵥ p.ball y r = p.ball (x +ᵥ y) r

The image of a ball under addition with a singleton is another ball.

theorem seminorm.vadd_closed_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_smul 𝕜 E] {x y : E} {r : } (p : seminorm 𝕜 E) :
x +ᵥ p.closed_ball y r = p.closed_ball (x +ᵥ y) r

The image of a closed ball under addition with a singleton is another closed ball.

theorem seminorm.ball_comp {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [semi_normed_ring 𝕜₂] [add_comm_group E₂] [module 𝕜₂ E₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) (x : E) (r : ) :
(p.comp f).ball x r = f ⁻¹' p.ball (f x) r
theorem seminorm.closed_ball_comp {𝕜 : Type u_3} {𝕜₂ : Type u_4} {E : Type u_7} {E₂ : Type u_8} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [semi_normed_ring 𝕜₂] [add_comm_group E₂] [module 𝕜₂ E₂] {σ₁₂ : 𝕜 →+* 𝕜₂} [ring_hom_isometric σ₁₂] (p : seminorm 𝕜₂ E₂) (f : E →ₛₗ[σ₁₂] E₂) (x : E) (r : ) :
(p.comp f).closed_ball x r = f ⁻¹' p.closed_ball (f x) r
theorem seminorm.preimage_metric_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r : } :
p ⁻¹' metric.ball 0 r = {x : E | p x < r}
theorem seminorm.preimage_metric_closed_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r : } :
p ⁻¹' metric.closed_ball 0 r = {x : E | p x r}
theorem seminorm.ball_zero_eq_preimage_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r : } :
@[simp]
theorem seminorm.ball_bot {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {r : } (x : E) (hr : 0 < r) :
@[simp]
theorem seminorm.closed_ball_bot {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {r : } (x : E) (hr : 0 < r) :
theorem seminorm.balanced_ball_zero {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) (r : ) :
balanced 𝕜 (p.ball 0 r)

Seminorm-balls at the origin are balanced.

theorem seminorm.balanced_closed_ball_zero {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) (r : ) :
balanced 𝕜 (p.closed_ball 0 r)

Closed seminorm-balls at the origin are balanced.

theorem seminorm.ball_finset_sup_eq_Inter {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) (x : E) {r : } (hr : 0 < r) :
(s.sup p).ball x r = (i : ι) (H : i s), (p i).ball x r
theorem seminorm.closed_ball_finset_sup_eq_Inter {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) (x : E) {r : } (hr : 0 r) :
(s.sup p).closed_ball x r = (i : ι) (H : i s), (p i).closed_ball x r
theorem seminorm.ball_finset_sup {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) (x : E) {r : } (hr : 0 < r) :
(s.sup p).ball x r = s.inf (λ (i : ι), (p i).ball x r)
theorem seminorm.closed_ball_finset_sup {𝕜 : Type u_3} {E : Type u_7} {ι : Type u_12} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι seminorm 𝕜 E) (s : finset ι) (x : E) {r : } (hr : 0 r) :
(s.sup p).closed_ball x r = s.inf (λ (i : ι), (p i).closed_ball x r)
theorem seminorm.ball_smul_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) (r₁ r₂ : ) :
metric.ball 0 r₁ p.ball 0 r₂ p.ball 0 (r₁ * r₂)
theorem seminorm.closed_ball_smul_closed_ball {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) (r₁ r₂ : ) :
metric.closed_ball 0 r₁ p.closed_ball 0 r₂ p.closed_ball 0 (r₁ * r₂)
@[simp]
theorem seminorm.ball_eq_emptyset {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {x : E} {r : } (hr : r 0) :
p.ball x r =
@[simp]
theorem seminorm.closed_ball_eq_emptyset {𝕜 : Type u_3} {E : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {x : E} {r : } (hr : r < 0) :
theorem seminorm.ball_norm_mul_subset {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {p : seminorm 𝕜 E} {k : 𝕜} {r : } :
p.ball 0 (k * r) k p.ball 0 r
theorem seminorm.smul_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {p : seminorm 𝕜 E} {k : 𝕜} {r : } (hk : k 0) :
k p.ball 0 r = p.ball 0 (k * r)
theorem seminorm.smul_closed_ball_subset {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {p : seminorm 𝕜 E} {k : 𝕜} {r : } :
theorem seminorm.smul_closed_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {p : seminorm 𝕜 E} {k : 𝕜} {r : } (hk : 0 < k) :
k p.closed_ball 0 r = p.closed_ball 0 (k * r)
theorem seminorm.ball_zero_absorbs_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r₁ r₂ : } (hr₁ : 0 < r₁) :
absorbs 𝕜 (p.ball 0 r₁) (p.ball 0 r₂)
@[protected]
theorem seminorm.absorbent_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r : } (hr : 0 < r) :
absorbent 𝕜 (p.ball 0 r)

Seminorm-balls at the origin are absorbent.

@[protected]
theorem seminorm.absorbent_closed_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r : } (hr : 0 < r) :
absorbent 𝕜 (p.closed_ball 0 r)

Closed seminorm-balls at the origin are absorbent.

@[protected]
theorem seminorm.absorbent_ball {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r : } {x : E} (hpr : p x < r) :
absorbent 𝕜 (p.ball x r)

Seminorm-balls containing the origin are absorbent.

@[protected]
theorem seminorm.absorbent_closed_ball {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {r : } {x : E} (hpr : p x < r) :
absorbent 𝕜 (p.closed_ball x r)

Seminorm-balls containing the origin are absorbent.

theorem seminorm.symmetric_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) {x : E} (r : ) (hx : x p.ball 0 r) :
-x p.ball 0 r
@[simp]
theorem seminorm.neg_ball {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) (r : ) (x : E) :
-p.ball x r = p.ball (-x) r
@[simp]
theorem seminorm.smul_ball_preimage {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) (y : E) (r : ) (a : 𝕜) (ha : a 0) :
@[protected]
theorem seminorm.convex_on {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [normed_space 𝕜] [module 𝕜 E] [has_smul E] [is_scalar_tower 𝕜 E] (p : seminorm 𝕜 E) :

A seminorm is convex. Also see convex_on_norm.

theorem seminorm.convex_ball {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [normed_space 𝕜] [module 𝕜 E] [module E] [is_scalar_tower 𝕜 E] (p : seminorm 𝕜 E) (x : E) (r : ) :
convex (p.ball x r)

Seminorm-balls are convex.

theorem seminorm.convex_closed_ball {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [add_comm_group E] [normed_space 𝕜] [module 𝕜 E] [module E] [is_scalar_tower 𝕜 E] (p : seminorm 𝕜 E) (x : E) (r : ) :

Closed seminorm-balls are convex.

@[protected]
def seminorm.restrict_scalars (𝕜 : Type u_3) {E : Type u_7} {𝕜' : Type u_13} [normed_field 𝕜] [semi_normed_ring 𝕜'] [normed_algebra 𝕜 𝕜'] [norm_one_class 𝕜'] [add_comm_group E] [module 𝕜' E] [has_smul 𝕜 E] [is_scalar_tower 𝕜 𝕜' E] (p : seminorm 𝕜' E) :
seminorm 𝕜 E

Reinterpret a seminorm over a field 𝕜' as a seminorm over a smaller field 𝕜. This will typically be used with is_R_or_C 𝕜' and 𝕜 = ℝ.

Equations
@[simp]
theorem seminorm.coe_restrict_scalars (𝕜 : Type u_3) {E : Type u_7} {𝕜' : Type u_13} [normed_field 𝕜] [semi_normed_ring 𝕜'] [normed_algebra 𝕜 𝕜'] [norm_one_class 𝕜'] [add_comm_group E] [module 𝕜' E] [has_smul 𝕜 E] [is_scalar_tower 𝕜 𝕜' E] (p : seminorm 𝕜' E) :
@[simp]
theorem seminorm.restrict_scalars_ball (𝕜 : Type u_3) {E : Type u_7} {𝕜' : Type u_13} [normed_field 𝕜] [semi_normed_ring 𝕜'] [normed_algebra 𝕜 𝕜'] [norm_one_class 𝕜'] [add_comm_group E] [module 𝕜' E] [has_smul 𝕜 E] [is_scalar_tower 𝕜 𝕜' E] (p : seminorm 𝕜' E) :
@[simp]
theorem seminorm.restrict_scalars_closed_ball (𝕜 : Type u_3) {E : Type u_7} {𝕜' : Type u_13} [normed_field 𝕜] [semi_normed_ring 𝕜'] [normed_algebra 𝕜 𝕜'] [norm_one_class 𝕜'] [add_comm_group E] [module 𝕜' E] [has_smul 𝕜 E] [is_scalar_tower 𝕜 𝕜' E] (p : seminorm 𝕜' E) :

Continuity criterions for seminorms #

theorem seminorm.continuous_at_zero' {𝕜 : Type u_3} {E : Type u_7} [nontrivially_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [topological_space E] [has_continuous_const_smul 𝕜 E] {p : seminorm 𝕜 E} {r : } (hr : 0 < r) (hp : p.closed_ball 0 r nhds 0) :
theorem seminorm.continuous_at_zero {𝕜 : Type u_3} {E : Type u_7} [nontrivially_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [topological_space E] [has_continuous_const_smul 𝕜 E] {p : seminorm 𝕜 E} {r : } (hr : 0 < r) (hp : p.ball 0 r nhds 0) :
@[protected]
@[protected]
theorem seminorm.uniform_continuous {𝕜 : Type u_3} {E : Type u_7} [nontrivially_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [uniform_space E] [uniform_add_group E] [has_continuous_const_smul 𝕜 E] {p : seminorm 𝕜 E} {r : } (hr : 0 < r) (hp : p.ball 0 r nhds 0) :
@[protected]
theorem seminorm.uniform_continuous' {𝕜 : Type u_3} {E : Type u_7} [nontrivially_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [uniform_space E] [uniform_add_group E] [has_continuous_const_smul 𝕜 E] {p : seminorm 𝕜 E} {r : } (hr : 0 < r) (hp : p.closed_ball 0 r nhds 0) :
@[protected]
theorem seminorm.continuous {𝕜 : Type u_3} {E : Type u_7} [nontrivially_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [topological_space E] [topological_add_group E] [has_continuous_const_smul 𝕜 E] {p : seminorm 𝕜 E} {r : } (hr : 0 < r) (hp : p.ball 0 r nhds 0) :
@[protected]
theorem seminorm.continuous' {𝕜 : Type u_3} {E : Type u_7} [nontrivially_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [topological_space E] [topological_add_group E] [has_continuous_const_smul 𝕜 E] {p : seminorm 𝕜 E} {r : } (hr : 0 < r) (hp : p.closed_ball 0 r nhds 0) :
theorem seminorm.continuous_of_le {𝕜 : Type u_3} {E : Type u_7} [nontrivially_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [topological_space E] [topological_add_group E] [has_continuous_const_smul 𝕜 E] {p q : seminorm 𝕜 E} (hq : continuous q) (hpq : p q) :

The norm as a seminorm #

def norm_seminorm (𝕜 : Type u_3) (E : Type u_7) [normed_field 𝕜] [seminormed_add_comm_group E] [normed_space 𝕜 E] :
seminorm 𝕜 E

The norm of a seminormed group as a seminorm.

Equations
@[simp]
theorem coe_norm_seminorm (𝕜 : Type u_3) (E : Type u_7) [normed_field 𝕜] [seminormed_add_comm_group E] [normed_space 𝕜 E] :
@[simp]
theorem ball_norm_seminorm (𝕜 : Type u_3) (E : Type u_7) [normed_field 𝕜] [seminormed_add_comm_group E] [normed_space 𝕜 E] :
theorem absorbent_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [seminormed_add_comm_group E] [normed_space 𝕜 E] {r : } (hr : 0 < r) :

Balls at the origin are absorbent.

theorem absorbent_ball {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [seminormed_add_comm_group E] [normed_space 𝕜 E] {r : } {x : E} (hx : x < r) :

Balls containing the origin are absorbent.

theorem balanced_ball_zero {𝕜 : Type u_3} {E : Type u_7} [normed_field 𝕜] [seminormed_add_comm_group E] [normed_space 𝕜 E] {r : } :

Balls at the origin are balanced.