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 : ๐ โ E โ E
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
- โฏ = โฏ
Equations
- NormedField.toNormedSpace = NormedSpace.mk โฏ
Equations
- โฏ = โฏ
Equations
- โฏ = โฏ
Equations
- ULift.normedSpace = let __spread.0 := ULift.seminormedAddCommGroup; let __spread.1 := ULift.module'; NormedSpace.mk โฏ
The product of two normed spaces is a normed space, with the sup norm.
Equations
- Prod.normedSpace = let __src := Prod.seminormedAddCommGroup; let __src := Prod.instModule; NormedSpace.mk โฏ
The product of finitely many normed spaces is a normed space, with the sup norm.
Equations
- Pi.normedSpace = NormedSpace.mk โฏ
Equations
- MulOpposite.instNormedSpace = NormedSpace.mk โฏ
A subspace of a normed space is also a normed space, with the restriction of the norm.
Equations
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
- NormedSpace.induced ๐ E G f = let x := SeminormedAddCommGroup.induced E G f; NormedSpace.mk โฏ
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
- โฏ = โฏ
Equations
- โฏ = โฏ
Equations
- โฏ = โฏ
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
- โฏ = โฏ
Equations
- โฏ = โฏ
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:
variable [NormedField ๐] [NonUnitalSeminormedRing ๐']
variable [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:variable [NormedField ๐] [NonUnitalSeminormedRing ๐'] variable [NormedSpace ๐ ๐'] [SMulCommClass ๐ ๐' ๐'] [IsScalarTower ๐ ๐' ๐']
Instances
Equations
- NormedAlgebra.toNormedSpace ๐' = let __src := Algebra.toModule; NormedSpace.mk โฏ
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 โฏ
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
- normedAlgebraRat = NormedAlgebra.mk โฏ
Equations
- PUnit.normedAlgebra ๐ = NormedAlgebra.mk โฏ
Equations
- instNormedAlgebraULiftSeminormedRing ๐ ๐' = let __src := ULift.normedSpace; let __src_1 := ULift.algebra; NormedAlgebra.mk โฏ
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 โฏ
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 โฏ
Equations
- MulOpposite.instNormedAlgebra ๐ = let __spread.0 := MulOpposite.instAlgebra; let __spread.1 := MulOpposite.instNormedSpace; NormedAlgebra.mk โฏ
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
- NormedAlgebra.induced ๐ R S f = NormedAlgebra.mk โฏ
Instances For
Equations
- Subalgebra.toNormedAlgebra S = NormedAlgebra.induced ๐ (โฅS) A (Subalgebra.val S)
Equations
- instSeminormedAddCommGroupRestrictScalars = I
Equations
- instNormedAddCommGroupRestrictScalars = I
Equations
- instNonUnitalSeminormedRingRestrictScalars = I
Equations
- instNonUnitalNormedRingRestrictScalars = I
Equations
- instSeminormedRingRestrictScalars = I
Equations
- instNormedRingRestrictScalars = I
Equations
- instNonUnitalSeminormedCommRingRestrictScalars = I
Equations
- instNonUnitalNormedCommRingRestrictScalars = I
Equations
- instSeminormedCommRingRestrictScalars = I
Equations
- instNormedCommRingRestrictScalars = 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 โฏ
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
Instances For
If E
is a normed algebra over ๐'
and ๐
is a normed algebra over ๐'
, then
RestrictScalars.module
is additionally a NormedAlgebra
.
Equations
- RestrictScalars.normedAlgebra ๐ ๐' E = let __src := RestrictScalars.algebra ๐ ๐' E; NormedAlgebra.mk โฏ
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.normedAlgebraOrig = I
Instances For
Warning: This declaration should be used judiciously.
Please consider using IsScalarTower
and/or RestrictScalars ๐ ๐' E
instead.
This definition allows the RestrictScalars.normedAlgebra
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
- NormedAlgebra.restrictScalars ๐ ๐' E = RestrictScalars.normedAlgebra ๐ ๐' E