mathlib documentation

analysis.seminorm

Seminorms and Local Convexity #

This file defines absorbent sets, balanced sets, seminorms and the Minkowski functional.

An absorbent set is one that "surrounds" the origin. The idea is made precise by requiring that any point belongs to all large enough scalings of the set. This is the vector world analog of a topological neighborhood of the origin.

A balanced set is one that is everywhere around the origin. This means that a • s ⊆ s for all a of norm less than 1.

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.

The Minkowski functional of a set s is the function which associates each point to how much you need to scale s for x to be inside it. When s is symmetric, convex and absorbent, its gauge is a seminorm. Reciprocally, any seminorm arises as the gauge of some set, namely its unit ball. This induces the equivalence of seminorms and locally convex topological vector spaces.

Main declarations #

For a vector space over a normed field:

References #

TODO #

Define and show equivalence of two notions of local convexity for a topological vector space over ℝ or ℂ: that it has a local base of balanced convex absorbent sets, and that it carries the initial topology induced by a family of seminorms.

Prove the properties of balanced and absorbent sets of a real vector space.

Tags #

absorbent, balanced, seminorm, Minkowski functional, gauge, locally convex, LCTVS

Set Properties #

Absorbent and balanced sets in a vector space over a normed field.

def absorbs (𝕜 : Type u_2) {E : Type u_4} [semi_normed_ring 𝕜] [has_scalar 𝕜 E] (A B : set E) :
Prop

A set A absorbs another set B if B is contained in all scalings of A by elements of sufficiently large norms.

Equations
def absorbent (𝕜 : Type u_2) {E : Type u_4} [semi_normed_ring 𝕜] [has_scalar 𝕜 E] (A : set E) :
Prop

A set is absorbent if it absorbs every singleton.

Equations
def balanced (𝕜 : Type u_2) {E : Type u_4} [semi_normed_ring 𝕜] [has_scalar 𝕜 E] (A : set E) :
Prop

A set A is balanced if a • A is contained in A whenever a has norm less than or equal to one.

Equations
theorem balanced_univ {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [has_scalar 𝕜 E] :
theorem balanced.union {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [has_scalar 𝕜 E] {A B : set E} (hA : balanced 𝕜 A) (hB : balanced 𝕜 B) :
balanced 𝕜 (A B)
theorem balanced.inter {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {A B : set E} (hA : balanced 𝕜 A) (hB : balanced 𝕜 B) :
balanced 𝕜 (A B)
theorem balanced.add {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {A B : set E} (hA₁ : balanced 𝕜 A) (hA₂ : balanced 𝕜 B) :
balanced 𝕜 (A + B)
theorem absorbs.mono {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {s t u v : set E} (hs : absorbs 𝕜 s u) (hst : s t) (hvu : v u) :
absorbs 𝕜 t v
theorem absorbs.mono_left {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {s t u : set E} (hs : absorbs 𝕜 s u) (h : s t) :
absorbs 𝕜 t u
theorem absorbs.mono_right {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {s u v : set E} (hs : absorbs 𝕜 s u) (h : v u) :
absorbs 𝕜 s v
theorem absorbs.union {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {s u v : set E} (hu : absorbs 𝕜 s u) (hv : absorbs 𝕜 s v) :
absorbs 𝕜 s (u v)
@[simp]
theorem absorbs_union {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {s u v : set E} :
absorbs 𝕜 s (u v) absorbs 𝕜 s u absorbs 𝕜 s v
theorem absorbent.subset {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {A B : set E} (hA : absorbent 𝕜 A) (hAB : A B) :
absorbent 𝕜 B
theorem absorbent_iff_forall_absorbs_singleton {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} :
absorbent 𝕜 A ∀ (x : E), absorbs 𝕜 A {x}
theorem absorbent.absorbs {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {s : set E} (hs : absorbent 𝕜 s) {x : E} :
absorbs 𝕜 s {x}
theorem absorbent_iff_nonneg_lt {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} :
absorbent 𝕜 A ∀ (x : E), ∃ (r : ), 0 r ∀ (a : 𝕜), r < ax a A
theorem balanced.smul {𝕜 : Type u_2} {E : Type u_4} [normed_comm_ring 𝕜] [add_comm_monoid E] [module 𝕜 E] {A : set E} (a : 𝕜) (hA : balanced 𝕜 A) :
balanced 𝕜 (a A)
theorem balanced.smul_mono {𝕜 : Type u_2} {𝕝 : Type u_3} {E : Type u_4} [normed_field 𝕜] [normed_ring 𝕝] [normed_space 𝕜 𝕝] [add_comm_group E] [module 𝕜 E] [smul_with_zero 𝕝 E] [is_scalar_tower 𝕜 𝕝 E] {s : set E} (hs : balanced 𝕝 s) {a : 𝕝} {b : 𝕜} (h : a b) :
a s b s

Scalar multiplication (by possibly different types) of a balanced set is monotone.

theorem balanced.absorbs_self {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} (hA : balanced 𝕜 A) :
absorbs 𝕜 A A

A balanced set absorbs itself.

theorem balanced.subset_smul {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} {a : 𝕜} (hA : balanced 𝕜 A) (ha : 1 a) :
A a A
theorem balanced.smul_eq {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} {a : 𝕜} (hA : balanced 𝕜 A) (ha : a = 1) :
a A = A
theorem absorbs.inter {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {s t u : set E} (hs : absorbs 𝕜 s u) (ht : absorbs 𝕜 t u) :
absorbs 𝕜 (s t) u
@[simp]
theorem absorbs_inter {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {s t u : set E} :
absorbs 𝕜 (s t) u absorbs 𝕜 s u absorbs 𝕜 t u
theorem absorbent_univ {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] :

Topological vector space #

theorem absorbent_nhds_zero {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} [topological_space E] [has_continuous_smul 𝕜 E] (hA : A 𝓝 0) :
absorbent 𝕜 A

Every neighbourhood of the origin is absorbent.

theorem balanced_zero_union_interior {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} [topological_space E] [has_continuous_smul 𝕜 E] (hA : balanced 𝕜 A) :
balanced 𝕜 (0 interior A)

The union of {0} with the interior of a balanced set is balanced.

theorem balanced.interior {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} [topological_space E] [has_continuous_smul 𝕜 E] (hA : balanced 𝕜 A) (h : 0 interior A) :

The interior of a balanced set is balanced if it contains the origin.

theorem balanced.closure {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {A : set E} [topological_space E] [has_continuous_smul 𝕜 E] (hA : balanced 𝕜 A) :
balanced 𝕜 (closure A)

The closure of a balanced set is balanced.

theorem absorbs_zero_iff {𝕜 : Type u_2} {E : Type u_4} [nondiscrete_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {s : set E} :
absorbs 𝕜 s 0 0 s
theorem absorbent.zero_mem {𝕜 : Type u_2} {E : Type u_4} [nondiscrete_normed_field 𝕜] [add_comm_group E] [module 𝕜 E] {s : set E} (hs : absorbent 𝕜 s) :
0 s

Seminorms #

structure seminorm (𝕜 : Type u_9) (E : Type u_10) [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
Type u_10

A seminorm on a vector space over a normed field is a function to the reals that is positive semidefinite, positive homogeneous, and subadditive.

@[protected, instance]
def seminorm.fun_like {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
fun_like (seminorm 𝕜 E) E (λ (_x : E), )
Equations
@[protected, instance]
def seminorm.has_coe_to_fun {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
has_coe_to_fun (seminorm 𝕜 E) (λ (_x : seminorm 𝕜 E), E → )

Helper instance for when there's too many metavariables to apply to_fun.to_coe_fn.

Equations
@[ext]
theorem seminorm.ext {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] {p q : seminorm 𝕜 E} (h : ∀ (x : E), p x = q x) :
p = q
@[protected, instance]
def seminorm.has_zero {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
Equations
@[simp]
theorem seminorm.coe_zero {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
0 = 0
@[simp]
theorem seminorm.zero_apply {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (x : E) :
0 x = 0
@[protected, instance]
def seminorm.inhabited {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
Equations
@[protected]
theorem seminorm.smul {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (p : seminorm 𝕜 E) (c : 𝕜) (x : E) :
p (c x) = c * p x
@[protected]
theorem seminorm.triangle {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (p : seminorm 𝕜 E) (x y : E) :
p (x + y) p x + p y
@[protected, instance]
def seminorm.has_scalar {R : Type u_1} {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] [has_scalar R ] [has_scalar R ℝ≥0] [is_scalar_tower R ℝ≥0 ] :
has_scalar R (seminorm 𝕜 E)

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

Equations
theorem seminorm.coe_smul {R : Type u_1} {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] [has_scalar R ] [has_scalar R ℝ≥0] [is_scalar_tower R ℝ≥0 ] (r : R) (p : seminorm 𝕜 E) :
(r p) = r p
@[simp]
theorem seminorm.smul_apply {R : Type u_1} {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] [has_scalar R ] [has_scalar R ℝ≥0] [is_scalar_tower R ℝ≥0 ] (r : R) (p : seminorm 𝕜 E) (x : E) :
(r p) x = r p x
@[protected, instance]
def seminorm.has_add {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
has_add (seminorm 𝕜 E)
Equations
theorem seminorm.coe_add {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (p q : seminorm 𝕜 E) :
(p + q) = p + q
@[simp]
theorem seminorm.add_apply {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (p q : seminorm 𝕜 E) (x : E) :
(p + q) x = p x + q x
@[protected, instance]
def seminorm.add_monoid {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
Equations
@[protected, instance]
def seminorm.ordered_cancel_add_comm_monoid {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
Equations
@[protected, instance]
def seminorm.mul_action {R : Type u_1} {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] [monoid R] [mul_action R ] [has_scalar R ℝ≥0] [is_scalar_tower R ℝ≥0 ] :
mul_action R (seminorm 𝕜 E)
Equations
def seminorm.coe_fn_add_monoid_hom (𝕜 : Type u_2) (E : Type u_4) [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 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_2) (E : Type u_4) [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (x : seminorm 𝕜 E) (ᾰ : E) :
@[protected, instance]
def seminorm.distrib_mul_action {R : Type u_1} {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] [monoid R] [distrib_mul_action R ] [has_scalar R ℝ≥0] [is_scalar_tower R ℝ≥0 ] :
Equations
@[protected, instance]
def seminorm.module {R : Type u_1} {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] [semiring R] [module R ] [has_scalar R ℝ≥0] [is_scalar_tower R ℝ≥0 ] :
module R (seminorm 𝕜 E)
Equations
@[protected, instance]
noncomputable def seminorm.has_sup {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
has_sup (seminorm 𝕜 E)
Equations
@[simp]
theorem seminorm.coe_sup {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (p q : seminorm 𝕜 E) :
(p q) = p q
@[protected, instance]
def seminorm.partial_order {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
Equations
theorem seminorm.le_def {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (p q : seminorm 𝕜 E) :
p q p q
theorem seminorm.lt_def {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] (p q : seminorm 𝕜 E) :
p < q p < q
@[protected, instance]
noncomputable def seminorm.semilattice_sup {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [has_scalar 𝕜 E] :
Equations
@[protected, simp]
theorem seminorm.zero {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_monoid E] [smul_with_zero 𝕜 E] (p : seminorm 𝕜 E) :
p 0 = 0
def seminorm.comp {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) :
seminorm 𝕜 E

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

Equations
theorem seminorm.coe_comp {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) :
(p.comp f) = p f
@[simp]
theorem seminorm.comp_apply {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) (x : E) :
(p.comp f) x = p (f x)
@[simp]
theorem seminorm.comp_id {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] (p : seminorm 𝕜 E) :
@[simp]
theorem seminorm.comp_zero {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p : seminorm 𝕜 F) :
p.comp 0 = 0
@[simp]
theorem seminorm.zero_comp {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (f : E →ₗ[𝕜] F) :
0.comp f = 0
theorem seminorm.comp_comp {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} {G : Type u_6} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [add_comm_group G] [module 𝕜 E] [module 𝕜 F] [module 𝕜 G] (p : seminorm 𝕜 G) (g : F →ₗ[𝕜] G) (f : E →ₗ[𝕜] F) :
p.comp (g.comp f) = (p.comp g).comp f
theorem seminorm.add_comp {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p q : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) :
(p + q).comp f = p.comp f + q.comp f
theorem seminorm.comp_triangle {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p : seminorm 𝕜 F) (f g : E →ₗ[𝕜] F) :
p.comp (f + g) p.comp f + p.comp g
theorem seminorm.smul_comp {R : Type u_1} {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] [has_scalar R ] [has_scalar R ℝ≥0] [is_scalar_tower R ℝ≥0 ] (p : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) (c : R) :
(c p).comp f = c p.comp f
theorem seminorm.comp_mono {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] {p q : seminorm 𝕜 F} (f : E →ₗ[𝕜] F) (hp : p q) :
p.comp f q.comp f
def seminorm.pullback {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (f : E →ₗ[𝕜] F) :
seminorm 𝕜 F →+ seminorm 𝕜 E

The composition as an add_monoid_hom.

Equations
@[simp]
theorem seminorm.pullback_apply {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (f : E →ₗ[𝕜] F) (p : seminorm 𝕜 F) :
@[protected, simp]
theorem seminorm.neg {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (p : seminorm 𝕜 E) (x : E) :
p (-x) = p x
@[protected]
theorem seminorm.sub_le {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (p : seminorm 𝕜 E) (x y : E) :
p (x - y) p x + p y
theorem seminorm.nonneg {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (p : seminorm 𝕜 E) (x : E) :
0 p x
theorem seminorm.sub_rev {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (p : seminorm 𝕜 E) (x y : E) :
p (x - y) = p (y - x)
@[protected, instance]
def seminorm.order_bot {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] :
Equations
@[simp]
theorem seminorm.coe_bot {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] :
theorem seminorm.bot_eq_zero {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] :
= 0
theorem seminorm.smul_le_smul {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] {p q : seminorm 𝕜 E} {a b : ℝ≥0} (hpq : p q) (hab : a b) :
a p b q
theorem seminorm.finset_sup_apply {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (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_2} {E : Type u_4} {ι : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (p : ι → seminorm 𝕜 E) (s : finset ι) :
s.sup p ∑ (i : ι) in s, p i
theorem seminorm.comp_smul {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_comm_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) (c : 𝕜) :
p.comp (c f) = c∥₊ p.comp f
theorem seminorm.comp_smul_apply {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_comm_ring 𝕜] [add_comm_group E] [add_comm_group F] [module 𝕜 E] [module 𝕜 F] (p : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) (c : 𝕜) (x : E) :
(p.comp (c f)) x = c * p (f x)

Seminorm ball #

def seminorm.ball {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 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
@[simp]
theorem seminorm.mem_ball {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] (p : seminorm 𝕜 E) {x y : E} {r : } :
y p.ball x r p (y - x) < r
theorem seminorm.mem_ball_zero {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] (p : seminorm 𝕜 E) {y : E} {r : } :
y p.ball 0 r p y < r
theorem seminorm.ball_zero_eq {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] (p : seminorm 𝕜 E) {r : } :
p.ball 0 r = {y : E | p y < r}
@[simp]
theorem seminorm.ball_zero' {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] {r : } (x : E) (hr : 0 < r) :
theorem seminorm.ball_smul {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] (p : seminorm 𝕜 E) {c : ℝ≥0} (hc : 0 < c) (r : ) (x : E) :
(c p).ball x r = p.ball x (r / c)
theorem seminorm.ball_sup {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] (p q : seminorm 𝕜 E) (e : E) (r : ) :
(p q).ball e r = p.ball e r q.ball e r
theorem seminorm.ball_finset_sup' {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 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.ball_mono {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] {x : E} {p : seminorm 𝕜 E} {r₁ r₂ : } (h : r₁ r₂) :
p.ball x r₁ p.ball x r₂
theorem seminorm.ball_antitone {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 E] {x : E} {r : } {p q : seminorm 𝕜 E} (h : q p) :
p.ball x r q.ball x r
theorem seminorm.ball_add_ball_subset {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [has_scalar 𝕜 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.ball_comp {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [add_comm_group F] [module 𝕜 F] (p : seminorm 𝕜 F) (f : E →ₗ[𝕜] F) (x : E) (r : ) :
(p.comp f).ball x r = f ⁻¹' p.ball (f x) r
@[simp]
theorem seminorm.ball_bot {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] {r : } (x : E) (hr : 0 < r) :
theorem seminorm.balanced_ball_zero {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (p : seminorm 𝕜 E) (r : ) :
balanced 𝕜 (p.ball 0 r)

Seminorm-balls at the origin are balanced.

theorem seminorm.ball_finset_sup_eq_Inter {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (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.ball_finset_sup {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (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.ball_smul_ball {𝕜 : Type u_2} {E : Type u_4} [semi_normed_ring 𝕜] [add_comm_group E] [module 𝕜 E] [norm_one_class 𝕜] (p : seminorm 𝕜 E) (r₁ r₂ : ) :
metric.ball 0 r₁ p.ball 0 r₂ p.ball 0 (r₁ * r₂)
@[protected]
theorem seminorm.absorbent_ball_zero {𝕜 : Type u_2} {E : Type u_4} [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_ball {𝕜 : Type u_2} {E : Type u_4} [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.

theorem seminorm.symmetric_ball_zero {𝕜 : Type u_2} {E : Type u_4} [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_2} {E : Type u_4} [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_2} {E : Type u_4} [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_2} {E : Type u_4} [normed_linear_ordered_field 𝕜] [add_comm_group E] [normed_space 𝕜] [module 𝕜 E] [has_scalar E] [is_scalar_tower 𝕜 E] (p : seminorm 𝕜 E) :

A seminorm is convex. Also see convex_on_norm.

theorem seminorm.convex_ball {𝕜 : Type u_2} {E : Type u_4} [normed_linear_ordered_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.

The norm as a seminorm #

def norm_seminorm (𝕜 : Type u_2) (E : Type u_4) [normed_field 𝕜] [semi_normed_group E] [normed_space 𝕜 E] :
seminorm 𝕜 E

The norm of a seminormed group as a seminorm.

Equations
@[simp]
theorem coe_norm_seminorm (𝕜 : Type u_2) (E : Type u_4) [normed_field 𝕜] [semi_normed_group E] [normed_space 𝕜 E] :
@[simp]
theorem ball_norm_seminorm (𝕜 : Type u_2) (E : Type u_4) [normed_field 𝕜] [semi_normed_group E] [normed_space 𝕜 E] :
theorem absorbent_ball_zero {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [semi_normed_group E] [normed_space 𝕜 E] {r : } (hr : 0 < r) :

Balls at the origin are absorbent.

theorem absorbent_ball {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [semi_normed_group E] [normed_space 𝕜 E] {r : } {x : E} (hx : x < r) :

Balls containing the origin are absorbent.

theorem balanced_ball_zero {𝕜 : Type u_2} {E : Type u_4} [normed_field 𝕜] [semi_normed_group E] [normed_space 𝕜 E] {r : } [norm_one_class 𝕜] :

Balls at the origin are balanced.

Minkowksi functional #

noncomputable def gauge {E : Type u_4} [add_comm_group E] [module E] (s : set E) (x : E) :

The Minkowski functional. Given a set s in a real vector space, gauge s is the functional which sends x : E to the smallest r : ℝ such that x is in s scaled by r.

Equations
theorem gauge_def {E : Type u_4} [add_comm_group E] [module E] {s : set E} {x : E} :
gauge s x = Inf {r ∈ set.Ioi 0 | x r s}
theorem gauge_def' {E : Type u_4} [add_comm_group E] [module E] {s : set E} {x : E} :
gauge s x = Inf {r ∈ set.Ioi 0 | r⁻¹ x s}

An alternative definition of the gauge using scalar multiplication on the element rather than on the set.

theorem absorbent.gauge_set_nonempty {E : Type u_4} [add_comm_group E] [module E] {s : set E} {x : E} (absorbs : absorbent s) :
{r : | 0 < r x r s}.nonempty

If the given subset is absorbent then the set we take an infimum over in gauge is nonempty, which is useful for proving many properties about the gauge.

theorem gauge_mono {E : Type u_4} [add_comm_group E] [module E] {s t : set E} (hs : absorbent s) (h : s t) :
theorem exists_lt_of_gauge_lt {E : Type u_4} [add_comm_group E] [module E] {s : set E} {a : } {x : E} (absorbs : absorbent s) (h : gauge s x < a) :
∃ (b : ), 0 < b b < a x b s
@[simp]
theorem gauge_zero {E : Type u_4} [add_comm_group E] [module E] {s : set E} :
gauge s 0 = 0

The gauge evaluated at 0 is always zero (mathematically this requires 0 to be in the set s but, the real infimum of the empty set in Lean being defined as 0, it holds unconditionally).

@[simp]
theorem gauge_zero' {E : Type u_4} [add_comm_group E] [module E] :
gauge 0 = 0
@[simp]
theorem gauge_empty {E : Type u_4} [add_comm_group E] [module E] :
theorem gauge_of_subset_zero {E : Type u_4} [add_comm_group E] [module E] {s : set E} (h : s 0) :
gauge s = 0
theorem gauge_nonneg {E : Type u_4} [add_comm_group E] [module E] {s : set E} (x : E) :
0 gauge s x

The gauge is always nonnegative.

theorem gauge_neg {E : Type u_4} [add_comm_group E] [module E] {s : set E} (symmetric : ∀ (x : E), x s-x s) (x : E) :
gauge s (-x) = gauge s x
theorem gauge_le_of_mem {E : Type u_4} [add_comm_group E] [module E] {s : set E} {a : } {x : E} (ha : 0 a) (hx : x a s) :
gauge s x a
theorem gauge_le_eq {E : Type u_4} [add_comm_group E] [module E] {s : set E} {a : } (hs₁ : convex s) (hs₀ : 0 s) (hs₂ : absorbent s) (ha : 0 a) :
{x : E | gauge s x a} = ⋂ (r : ) (H : a < r), r s
theorem gauge_lt_eq' {E : Type u_4} [add_comm_group E] [module E] {s : set E} (absorbs : absorbent s) (a : ) :
{x : E | gauge s x < a} = ⋃ (r : ) (H : 0 < r) (H : r < a), r s
theorem gauge_lt_eq {E : Type u_4} [add_comm_group E] [module E] {s : set E} (absorbs : absorbent s) (a : ) :
{x : E | gauge s x < a} = ⋃ (r : ) (H : r set.Ioo 0 a), r s
theorem gauge_lt_one_subset_self {E : Type u_4} [add_comm_group E] [module E] {s : set E} (hs : convex s) (h₀ : 0 s) (absorbs : absorbent s) :
{x : E | gauge s x < 1} s
theorem gauge_le_one_of_mem {E : Type u_4} [add_comm_group E] [module E] {s : set E} {x : E} (hx : x s) :
gauge s x 1
theorem self_subset_gauge_le_one {E : Type u_4} [add_comm_group E] [module E] {s : set E} :
s {x : E | gauge s x 1}
theorem convex.gauge_le {E : Type u_4} [add_comm_group E] [module E] {s : set E} (hs : convex s) (h₀ : 0 s) (absorbs : absorbent s) (a : ) :
convex {x : E | gauge s x a}
theorem balanced.star_convex {E : Type u_4} [add_comm_group E] [module E] {s : set E} (hs : balanced s) :
theorem le_gauge_of_not_mem {E : Type u_4} [add_comm_group E] [module E] {s : set E} {a : } {x : E} (hs₀ : star_convex 0 s) (hs₂ : absorbs s {x}) (hx : x a s) :
a gauge s x
theorem one_le_gauge_of_not_mem {E : Type u_4} [add_comm_group E] [module E] {s : set E} {x : E} (hs₁ : star_convex 0 s) (hs₂ : absorbs s {x}) (hx : x s) :
1 gauge s x
theorem gauge_smul_of_nonneg {E : Type u_4} [add_comm_group E] [module E] {α : Type u_9} [linear_ordered_field α] [mul_action_with_zero α ] [ordered_smul α ] [mul_action_with_zero α E] [is_scalar_tower α (set E)] {s : set E} {r : α} (hr : 0 r) (x : E) :
gauge s (r x) = r gauge s x
theorem gauge_smul {E : Type u_4} [add_comm_group E] [module E] {α : Type u_9} [linear_ordered_field α] [mul_action_with_zero α ] [ordered_smul α ] [module α E] [is_scalar_tower α (set E)] {s : set E} (symmetric : ∀ (x : E), x s-x s) (r : α) (x : E) :
gauge s (r x) = |r| gauge s x

In textbooks, this is the homogeneity of the Minkowksi functional.

theorem gauge_smul_left_of_nonneg {E : Type u_4} [add_comm_group E] [module E] {α : Type u_9} [linear_ordered_field α] [mul_action_with_zero α ] [ordered_smul α ] [mul_action_with_zero α E] [smul_comm_class α ] [is_scalar_tower α ] [is_scalar_tower α E] {s : set E} {a : α} (ha : 0 a) :
theorem gauge_smul_left {E : Type u_4} [add_comm_group E] [module E] {α : Type u_9} [linear_ordered_field α] [mul_action_with_zero α ] [ordered_smul α ] [module α E] [smul_comm_class α ] [is_scalar_tower α ] [is_scalar_tower α E] {s : set E} (symmetric : ∀ (x : E), x s-x s) (a : α) :
theorem interior_subset_gauge_lt_one {E : Type u_4} [add_comm_group E] [module E] [topological_space E] [has_continuous_smul E] (s : set E) :
interior s {x : E | gauge s x < 1}
theorem gauge_lt_one_eq_self_of_open {E : Type u_4} [add_comm_group E] [module E] {s : set E} [topological_space E] [has_continuous_smul E] (hs₁ : convex s) (hs₀ : 0 s) (hs₂ : is_open s) :
{x : E | gauge s x < 1} = s
theorem gauge_lt_one_of_mem_of_open {E : Type u_4} [add_comm_group E] [module E] {s : set E} [topological_space E] [has_continuous_smul E] (hs₁ : convex s) (hs₀ : 0 s) (hs₂ : is_open s) {x : E} (hx : x s) :
gauge s x < 1
theorem gauge_lt_of_mem_smul {E : Type u_4} [add_comm_group E] [module E] {s : set E} [topological_space E] [has_continuous_smul E] (x : E) (ε : ) (hε : 0 < ε) (hs₀ : 0 s) (hs₁ : convex s) (hs₂ : is_open s) (hx : x ε s) :
gauge s x < ε
theorem gauge_add_le {E : Type u_4} [add_comm_group E] [module E] {s : set E} (hs : convex s) (absorbs : absorbent s) (x y : E) :
gauge s (x + y) gauge s x + gauge s y
noncomputable def gauge_seminorm {E : Type u_4} [add_comm_group E] [module E] {s : set E} (hs₀ : ∀ (x : E), x s-x s) (hs₁ : convex s) (hs₂ : absorbent s) :

gauge s as a seminorm when s is symmetric, convex and absorbent.

Equations
@[simp]
theorem gauge_seminorm_to_fun {E : Type u_4} [add_comm_group E] [module E] {s : set E} (hs₀ : ∀ (x : E), x s-x s) (hs₁ : convex s) (hs₂ : absorbent s) (x : E) :
(gauge_seminorm hs₀ hs₁ hs₂) x = gauge s x
theorem gauge_seminorm_lt_one_of_open {E : Type u_4} [add_comm_group E] [module E] {s : set E} {hs₀ : ∀ (x : E), x s-x s} {hs₁ : convex s} {hs₂ : absorbent s} [topological_space E] [has_continuous_smul E] (hs : is_open s) {x : E} (hx : x s) :
(gauge_seminorm hs₀ hs₁ hs₂) x < 1
@[protected, simp]
theorem seminorm.gauge_ball {E : Type u_4} [add_comm_group E] [module E] (p : seminorm E) :
gauge (p.ball 0 1) = p

Any seminorm arises as the gauge of its unit ball.

theorem seminorm.gauge_seminorm_ball {E : Type u_4} [add_comm_group E] [module E] (p : seminorm E) :
theorem gauge_unit_ball {E : Type u_4} [semi_normed_group E] [normed_space E] (x : E) :
theorem smul_unit_ball {E : Type u_4} [semi_normed_group E] [normed_space E] {r : } (hr : 0 < r) :
theorem gauge_ball {E : Type u_4} [semi_normed_group E] [normed_space E] {r : } (hr : 0 < r) (x : E) :
theorem mul_gauge_le_norm {E : Type u_4} [semi_normed_group E] [normed_space E] {s : set E} {r : } {x : E} (hs : metric.ball 0 r s) :
r * gauge s x x

Topology induced by a family of seminorms #

def seminorm.seminorm_basis_zero {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) :
set (set E)

A filter basis for the neighborhood filter of 0.

Equations
theorem seminorm.seminorm_basis_zero_iff {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (U : set E) :
U seminorm.seminorm_basis_zero p ∃ (i : finset ι) (r : ) (hr : 0 < r), U = (i.sup p).ball 0 r
theorem seminorm.seminorm_basis_zero_mem {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (i : finset ι) {r : } (hr : 0 < r) :
theorem seminorm.seminorm_basis_zero_singleton_mem {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (i : ι) {r : } (hr : 0 < r) :
theorem seminorm.seminorm_basis_zero_nonempty {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) [nonempty ι] :
theorem seminorm.seminorm_basis_zero_intersect {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (U V : set E) (hU : U seminorm.seminorm_basis_zero p) (hV : V seminorm.seminorm_basis_zero p) :
∃ (z : set E) (H : z seminorm.seminorm_basis_zero p), z U V
theorem seminorm.seminorm_basis_zero_zero {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (U : set E) (hU : U seminorm.seminorm_basis_zero p) :
0 U
theorem seminorm.seminorm_basis_zero_add {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (U : set E) (hU : U seminorm.seminorm_basis_zero p) :
∃ (V : set E) (H : V seminorm.seminorm_basis_zero p), V + V U
theorem seminorm.seminorm_basis_zero_neg {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (U : set E) (hU' : U seminorm.seminorm_basis_zero p) :
∃ (V : set E) (H : V seminorm.seminorm_basis_zero p), V (λ (x : E), -x) ⁻¹' U
def seminorm.seminorm_add_group_filter_basis {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [nonempty ι] (p : ι → seminorm 𝕜 E) :

The add_group_filter_basis induced by the filter basis seminorm_basis_zero.

Equations
theorem seminorm.seminorm_basis_zero_smul_right {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] (p : ι → seminorm 𝕜 E) (v : E) (U : set E) (hU : U seminorm.seminorm_basis_zero p) :
∀ᶠ (x : 𝕜) in 𝓝 0, x v U
theorem seminorm.seminorm_basis_zero_smul {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [nonempty ι] (p : ι → seminorm 𝕜 E) (U : set E) (hU : U seminorm.seminorm_basis_zero p) :
∃ (V : set 𝕜) (H : V 𝓝 0) (W : set E) (H : W add_group_filter_basis.to_filter_basis.sets), V W U
theorem seminorm.seminorm_basis_zero_smul_left {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [nonempty ι] (p : ι → seminorm 𝕜 E) (x : 𝕜) (U : set E) (hU : U seminorm.seminorm_basis_zero p) :
∃ (V : set E) (H : V add_group_filter_basis.to_filter_basis.sets), V (λ (y : E), x y) ⁻¹' U
def seminorm.seminorm_module_filter_basis {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [nonempty ι] (p : ι → seminorm 𝕜 E) :

The module_filter_basis induced by the filter basis seminorm_basis_zero.

Equations
def seminorm.is_bounded {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} {ι : Type u_7} {ι' : Type u_8} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [add_comm_group F] [module 𝕜 F] (p : ι → seminorm 𝕜 E) (q : ι' → seminorm 𝕜 F) (f : E →ₗ[𝕜] F) :
Prop

The proposition that a linear map is bounded between spaces with families of seminorms.

Equations
theorem seminorm.is_bounded_const {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [add_comm_group F] [module 𝕜 F] (ι' : Type u_1) [nonempty ι'] {p : ι → seminorm 𝕜 E} {q : seminorm 𝕜 F} (f : E →ₗ[𝕜] F) :
seminorm.is_bounded p (λ (_x : ι'), q) f ∃ (s : finset ι) (C : ℝ≥0), C 0 q.comp f C s.sup p
theorem seminorm.const_is_bounded {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} {ι' : Type u_8} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [add_comm_group F] [module 𝕜 F] (ι : Type u_1) [nonempty ι] {p : seminorm 𝕜 E} {q : ι' → seminorm 𝕜 F} (f : E →ₗ[𝕜] F) :
seminorm.is_bounded (λ (_x : ι), p) q f ∀ (i : ι'), ∃ (C : ℝ≥0), C 0 (q i).comp f C p
theorem seminorm.is_bounded_sup {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} {ι : Type u_7} {ι' : Type u_8} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [add_comm_group F] [module 𝕜 F] {p : ι → seminorm 𝕜 E} {q : ι' → seminorm 𝕜 F} {f : E →ₗ[𝕜] F} (hf : seminorm.is_bounded p q f) (s' : finset ι') :
∃ (C : ℝ≥0) (s : finset ι), 0 < C (s'.sup q).comp f C s.sup p
@[class]
structure seminorm.with_seminorms {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [nonempty ι] (p : ι → seminorm 𝕜 E) [t : topological_space E] :
Prop

The proposition that the topology of E is induced by a family of seminorms p.

Instances
theorem seminorm.with_seminorms_eq {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [nonempty ι] (p : ι → seminorm 𝕜 E) [t : topological_space E] [seminorm.with_seminorms p] :
@[protected, instance]
def seminorm.norm_with_seminorms (𝕜 : Type u_1) (E : Type u_2) [normed_field 𝕜] [semi_normed_group E] [normed_space 𝕜 E] :

The topology of a normed_space 𝕜 E is induced by the seminorm norm_seminorm 𝕜 E.

theorem seminorm.continuous_from_bounded {𝕜 : Type u_2} {E : Type u_4} {F : Type u_5} {ι : Type u_7} {ι' : Type u_8} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [add_comm_group F] [module 𝕜 F] [nonempty ι] [nonempty ι'] (p : ι → seminorm 𝕜 E) (q : ι' → seminorm 𝕜 F) [uniform_space E] [uniform_add_group E] [seminorm.with_seminorms p] [uniform_space F] [uniform_add_group F] [seminorm.with_seminorms q] (f : E →ₗ[𝕜] F) (hf : seminorm.is_bounded p q f) :
theorem seminorm.cont_with_seminorms_normed_space {𝕜 : Type u_2} {E : Type u_4} {ι : Type u_7} [normed_field 𝕜] [add_comm_group E] [module 𝕜 E] [nonempty ι] (F : Type u_1) [semi_normed_group F] [normed_space 𝕜 F] [uniform_space E] [uniform_add_group E] (p : ι → seminorm 𝕜 E) [seminorm.with_seminorms p] (f : E →ₗ[𝕜] F) (hf : ∃ (s : finset ι) (C : ℝ≥0), C 0 (norm_seminorm 𝕜 F).comp f C s.sup p) :
theorem seminorm.cont_normed_space_to_with_seminorms {𝕜 : Type u_2} {F : Type u_5} {ι : Type u_7} [normed_field 𝕜] [add_comm_group F] [module 𝕜 F] [nonempty ι] (E : Type u_1) [semi_normed_group E] [normed_space 𝕜 E] [uniform_space F] [uniform_add_group F] (q : ι → seminorm 𝕜 F) [seminorm.with_seminorms q] (f : E →ₗ[𝕜] F) (hf : ∀ (i : ι), ∃ (C : ℝ≥0), C 0 (q i).comp f C norm_seminorm 𝕜 E) :