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
SeminormedAddCommGroupand notNormedAddCommGroup, this typeclass can be used for "semi normed spaces" too, just asModulecan 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
Algebrafor 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