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
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".
Equations
- β― = β―
Equations
- NormedField.toNormedSpace = NormedSpace.mk β―
Equations
- β― = β―
Equations
- β― = β―
Equations
- ULift.normedSpace = NormedSpace.mk β―
The product of two normed spaces is a normed space, with the sup norm.
Equations
- Prod.normedSpace = NormedSpace.mk β―
The product of finitely many normed spaces is a normed space, with the sup norm.
Equations
- Pi.normedSpace = NormedSpace.mk β―
Equations
- SeparationQuotient.instNormedSpace = 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
- s.normedSpace = NormedSpace.mk β―
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 = 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 : π β π'
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
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 π π' π']
Equations
- NormedAlgebra.toNormedSpace π' = 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
This is a simpler version of norm_algebraMap
when β1β = 1
in π'
.
This is a simpler version of nnnorm_algebraMap
when β1β = 1
in π'
.
This is a simpler version of dist_algebraMap
when β1β = 1
in π'
.
In a normed algebra, the inclusion of the base field in the extended field is an isometry.
Equations
- NormedAlgebra.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
- instNormedAlgebraULift π π' = NormedAlgebra.mk β―
The product of two normed algebras is a normed algebra, with the sup norm.
Equations
- Prod.normedAlgebra π = NormedAlgebra.mk β―
The product of finitely many normed algebras is a normed algebra, with the sup norm.
Equations
- Pi.normedAlgebra π = NormedAlgebra.mk β―
Equations
Equations
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
- S.toNormedAlgebra = NormedAlgebra.induced π (β₯S) A S.val
Equations
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 = 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.
See Note [reducible non-instances].
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 = 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.
See Note [reducible non-instances].
Equations
- NormedAlgebra.restrictScalars π π' E = RestrictScalars.normedAlgebra π π' E
Instances For
Structures for constructing new normed spaces #
This section contains tools meant for constructing new normed spaces. These allow one to easily construct all the relevant instances (distances measures, etc) while proving only a minimal set of axioms. Furthermore, tools are provided to add a norm structure to a type that already has a preexisting uniformity or bornology: in such cases, it is necessary to keep the preexisting instances, while ensuring that the norm induces the same uniformity/bornology.
A structure encapsulating minimal axioms needed to defined a seminormed vector space, as found
in textbooks. This is meant to be used to easily define SeminormedAddCommGroup E
instances from
scratch on a type with no preexisting distance or topology.
Instances For
Produces a PseudoMetricSpace E
instance from a SeminormedAddCommGroup.Core
. Note that
if this is used to define an instance on a type, it also provides a new uniformity and
topology on the type. See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Produces a PseudoEMetricSpace E
instance from a SeminormedAddCommGroup.Core
. Note that
if this is used to define an instance on a type, it also provides a new uniformity and
topology on the type. See note [reducible non-instances].
Equations
- PseudoEMetricSpace.ofSeminormedAddCommGroupCore core = PseudoMetricSpace.toPseudoEMetricSpace
Instances For
Produces a PseudoEMetricSpace E
instance from a SeminormedAddCommGroup.Core
on a type that
already has an existing uniform space structure. This requires a proof that the uniformity induced
by the norm is equal to the preexisting uniformity. See note [reducible non-instances].
Equations
- PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceUniformity core H = (PseudoMetricSpace.ofSeminormedAddCommGroupCore core).replaceUniformity H
Instances For
Produces a PseudoEMetricSpace E
instance from a SeminormedAddCommGroup.Core
on a type that
already has a preexisting uniform space structure and a preexisting bornology. This requires proofs
that the uniformity induced by the norm is equal to the preexisting uniformity, and likewise for
the bornology. See note [reducible non-instances].
Equations
- PseudoMetricSpace.ofSeminormedAddCommGroupCoreReplaceAll core HU HB = ((PseudoMetricSpace.ofSeminormedAddCommGroupCore core).replaceUniformity HU).replaceBornology HB
Instances For
Produces a SeminormedAddCommGroup E
instance from a SeminormedAddCommGroup.Core
. Note that
if this is used to define an instance on a type, it also provides a new distance measure from the
norm. it must therefore not be used on a type with a preexisting distance measure or topology.
See note [reducible non-instances].
Equations
Instances For
Produces a SeminormedAddCommGroup E
instance from a SeminormedAddCommGroup.Core
on a type
that already has an existing uniform space structure. This requires a proof that the uniformity
induced by the norm is equal to the preexisting uniformity. See note [reducible non-instances].
Equations
Instances For
Produces a SeminormedAddCommGroup E
instance from a SeminormedAddCommGroup.Core
on a type
that already has a preexisting uniform space structure and a preexisting bornology. This requires
proofs that the uniformity induced by the norm is equal to the preexisting uniformity, and likewise
for the bornology. See note [reducible non-instances].
Equations
- SeminormedAddCommGroup.ofCoreReplaceAll core HU HB = SeminormedAddCommGroup.mk β―
Instances For
A structure encapsulating minimal axioms needed to defined a normed vector space, as found
in textbooks. This is meant to be used to easily define NormedAddCommGroup E
and NormedSpace E
instances from scratch on a type with no preexisting distance or topology.
- norm_nonneg : β (x : E), 0 β€ βxβ
Instances For
Produces a NormedAddCommGroup E
instance from a NormedSpace.Core
. Note that if this is
used to define an instance on a type, it also provides a new distance measure from the norm.
it must therefore not be used on a type with a preexisting distance measure.
See note [reducible non-instances].
Equations
Instances For
Produces a NormedAddCommGroup E
instance from a NormedAddCommGroup.Core
on a type
that already has an existing uniform space structure. This requires a proof that the uniformity
induced by the norm is equal to the preexisting uniformity. See note [reducible non-instances].
Equations
Instances For
Produces a NormedAddCommGroup E
instance from a NormedAddCommGroup.Core
on a type
that already has a preexisting uniform space structure and a preexisting bornology. This requires
proofs that the uniformity induced by the norm is equal to the preexisting uniformity, and likewise
for the bornology. See note [reducible non-instances].
Equations
- NormedAddCommGroup.ofCoreReplaceAll core HU HB = NormedAddCommGroup.mk β―
Instances For
Produces a NormedSpace π E
instance from a NormedSpace.Core
. This is meant to be used
on types where the NormedAddCommGroup E
instance has also been defined using core
.
See note [reducible non-instances].
Equations
- NormedSpace.ofCore core = NormedSpace.mk β―