Normed spaces #
In this file we define (semi)normed spaces and algebras. We also prove some theorems about these definitions.
A normed space over a normed field is a vector space endowed with a norm which satisfies the
equality ‖c • x‖ = ‖c‖ ‖x‖
. We require only ‖c • x‖ ≤ ‖c‖ ‖x‖
in the definition, then prove
‖c • x‖ = ‖c‖ ‖x‖
in norm_smul
.
Note that since this requires SeminormedAddCommGroup
and not NormedAddCommGroup
, this
typeclass can be used for "semi normed spaces" too, just as Module
can be used for
"semi modules".
- smul : α → β → β
A normed space over a normed field is a vector space endowed with a norm which satisfies the equality
‖c • x‖ = ‖c‖ ‖x‖
. We require only‖c • x‖ ≤ ‖c‖ ‖x‖
in the definition, then prove‖c • x‖ = ‖c‖ ‖x‖
innorm_smul
.Note that since this requires
SeminormedAddCommGroup
and notNormedAddCommGroup
, this typeclass can be used for "semi normed spaces" too, just asModule
can be used for "semi modules".
Instances
Equations
- (_ : BoundedSMul α β) = (_ : BoundedSMul α β)
Equations
- (_ : BoundedSMul α α) = (_ : BoundedSMul α α)
Equations
- (_ : DiscreteTopology ↥(AddSubgroup.zmultiples e)) = (_ : DiscreteTopology ↥(AddSubgroup.zmultiples e))
The product of two normed spaces is a normed space, with the sup norm.
The product of finitely many normed spaces is a normed space, with the sup norm.
Equations
- One or more equations did not get rendered due to their size.
A subspace of a normed space is also a normed space, with the restriction of the norm.
A linear map from a Module
to a NormedSpace
induces a NormedSpace
structure on the
domain, using the SeminormedAddCommGroup.induced
norm.
See note [reducible non-instances]
Equations
Instances For
While this may appear identical to NormedSpace.toModule
, it contains an implicit argument
involving NormedAddCommGroup.toSeminormedAddCommGroup
that typeclass inference has trouble
inferring.
Specifically, the following instance cannot be found without this NormedSpace.toModule'
:
example
(𝕜 ι : Type*) (E : ι → Type*)
[NormedField 𝕜] [Π i, NormedAddCommGroup (E i)] [Π i, NormedSpace 𝕜 (E i)] :
Π i, Module 𝕜 (E i) := by infer_instance
This Zulip thread gives some more context.
Equations
- NormedSpace.toModule' = NormedSpace.toModule
If E
is a nontrivial normed space over a nontrivially normed field 𝕜
, then E
is unbounded:
for any c : ℝ
, there exists a vector x : E
with norm strictly greater than c
.
Equations
- (_ : Filter.NeBot (Bornology.cobounded 𝕜)) = (_ : Filter.NeBot (Bornology.cobounded 𝕜))
Equations
- (_ : Filter.NeBot (Bornology.cobounded E)) = (_ : Filter.NeBot (Bornology.cobounded E))
A normed vector space over an infinite normed field is a noncompact space.
This cannot be an instance because in order to apply it,
Lean would have to search for NormedSpace 𝕜 E
with unknown 𝕜
.
We register this as an instance in two cases: 𝕜 = E
and 𝕜 = ℝ
.
Equations
- (_ : NoncompactSpace 𝕜) = (_ : NoncompactSpace 𝕜)
Equations
- (_ : NoncompactSpace E) = (_ : NoncompactSpace E)
A normed algebra 𝕜'
over 𝕜
is normed module that is also an algebra.
See the implementation notes for Algebra
for a discussion about non-unital algebras. Following
the strategy there, a non-unital normed algebra can be written as:
variables [NormedField 𝕜] [NonUnitalSeminormedRing 𝕜']
variables [NormedSpace 𝕜 𝕜'] [SMulCommClass 𝕜 𝕜' 𝕜'] [IsScalarTower 𝕜 𝕜' 𝕜']
- smul : 𝕜 → 𝕜' → 𝕜'
- toFun : 𝕜 → 𝕜'
- map_one' : (↑↑Algebra.toRingHom).toFun 1 = 1
- map_zero' : (↑↑Algebra.toRingHom).toFun 0 = 0
A normed algebra
𝕜'
over𝕜
is normed module that is also an algebra.See the implementation notes for
Algebra
for a discussion about non-unital algebras. Following the strategy there, a non-unital normed algebra can be written as:variables [NormedField 𝕜] [NonUnitalSeminormedRing 𝕜'] variables [NormedSpace 𝕜 𝕜'] [SMulCommClass 𝕜 𝕜' 𝕜'] [IsScalarTower 𝕜 𝕜' 𝕜']
Instances
While this may appear identical to NormedAlgebra.toNormedSpace
, it contains an implicit
argument involving NormedRing.toSeminormedRing
that typeclass inference has trouble inferring.
Specifically, the following instance cannot be found without this NormedSpace.toModule'
:
example
(𝕜 ι : Type*) (E : ι → Type*)
[NormedField 𝕜] [Π i, NormedRing (E i)] [Π i, NormedAlgebra 𝕜 (E i)] :
Π i, Module 𝕜 (E i) := by infer_instance
See NormedSpace.toModule'
for a similar situation.
Equations
- NormedAlgebra.toNormedSpace' = inferInstance
In a normed algebra, the inclusion of the base field in the extended field is an isometry.
Equations
- NormedAlgebra.id 𝕜 = let src := NormedField.toNormedSpace; let src_1 := Algebra.id 𝕜; NormedAlgebra.mk (_ : ∀ (a b : 𝕜), ‖a • b‖ ≤ ‖a‖ * ‖b‖)
Any normed characteristic-zero division ring that is a normed algebra over the reals is also a normed algebra over the rationals.
Phrased another way, if 𝕜
is a normed algebra over the reals, then AlgebraRat
respects that
norm.
Equations
- PUnit.normedAlgebra 𝕜 = NormedAlgebra.mk (_ : ∀ (q : 𝕜), PUnit.{u_7 + 1} → 0 ≤ ‖q‖ * 0)
Equations
- instNormedAlgebraULiftSeminormedRing 𝕜 𝕜' = let src := ULift.normedSpace; let src_1 := ULift.algebra; NormedAlgebra.mk (_ : ∀ (a : 𝕜) (b : ULift.{u_7, u_6} 𝕜'), ‖a • b‖ ≤ ‖a‖ * ‖b‖)
The product of two normed algebras is a normed algebra, with the sup norm.
Equations
- Prod.normedAlgebra 𝕜 = let src := Prod.normedSpace; let src_1 := Prod.algebra 𝕜 E F; NormedAlgebra.mk (_ : ∀ (a : 𝕜) (b : E × F), ‖a • b‖ ≤ ‖a‖ * ‖b‖)
The product of finitely many normed algebras is a normed algebra, with the sup norm.
Equations
- Pi.normedAlgebra 𝕜 = let src := Pi.normedSpace; let src_1 := Pi.algebra ι E; NormedAlgebra.mk (_ : ∀ (a : 𝕜) (b : (i : ι) → E i), ‖a • b‖ ≤ ‖a‖ * ‖b‖)
A non-unital algebra homomorphism from an Algebra
to a NormedAlgebra
induces a
NormedAlgebra
structure on the domain, using the SeminormedRing.induced
norm.
See note [reducible non-instances]
Equations
Instances For
Equations
- Subalgebra.toNormedAlgebra S = NormedAlgebra.induced 𝕜 (↥S) A (Subalgebra.val S)
Equations
- instSeminormedAddCommGroupRestrictScalars = I
Equations
- instNormedAddCommGroupRestrictScalars = I
If E
is a normed space over 𝕜'
and 𝕜
is a normed algebra over 𝕜'
, then
RestrictScalars.module
is additionally a NormedSpace
.
Equations
- RestrictScalars.normedSpace 𝕜 𝕜' E = let src := RestrictScalars.module 𝕜 𝕜' E; NormedSpace.mk (_ : ∀ (c : 𝕜) (x : RestrictScalars 𝕜 𝕜' E), ‖(algebraMap 𝕜 𝕜') c • x‖ ≤ ‖c‖ * ‖x‖)
The action of the original normed_field on RestrictScalars 𝕜 𝕜' E
.
This is not an instance as it would be contrary to the purpose of RestrictScalars
.
Equations
- Module.RestrictScalars.normedSpaceOrig = I
Instances For
Warning: This declaration should be used judiciously.
Please consider using IsScalarTower
and/or RestrictScalars 𝕜 𝕜' E
instead.
This definition allows the RestrictScalars.normedSpace
instance to be put directly on E
rather on RestrictScalars 𝕜 𝕜' E
. This would be a very bad instance; both because 𝕜'
cannot be
inferred, and because it is likely to create instance diamonds.
Equations
- NormedSpace.restrictScalars 𝕜 𝕜' E = RestrictScalars.normedSpace 𝕜 𝕜' E