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
This is a shortcut instance, which was found to help with performance in https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Normed.20modules/near/516757412.
It is implied via NormedSpace.toNormSMulClass.
Equations
- NormedField.toNormedSpace = { toModule := Semiring.toModule, norm_smul_le := β― }
Equations
- ULift.normedSpace = { toModule := ULift.module', norm_smul_le := β― }
The product of two normed spaces is a normed space, with the sup norm.
Equations
- Prod.normedSpace = { toModule := Prod.instModule, norm_smul_le := β― }
The product of finitely many normed spaces is a normed space, with the sup norm.
Equations
- Pi.normedSpace = { toModule := Pi.module ΞΉ E π, norm_smul_le := β― }
Equations
- SeparationQuotient.instNormedSpace = { toModule := SeparationQuotient.instModule, norm_smul_le := β― }
Equations
- MulOpposite.instNormedSpace = { toModule := MulOpposite.instModule π, norm_smul_le := β― }
A subspace of a normed space is also a normed space, with the restriction of the norm.
Equations
- s.normedSpace = { toModule := s.module', norm_smul_le := β― }
Equations
- SubmoduleClass.toNormedSpace s = { toModule := SubmoduleClass.module' s, norm_smul_le := β― }
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 = { toModule := instββ΄, norm_smul_le := β― }
Instances For
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.
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 π = β.
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 : π β π' β π'
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 π' = { toModule := Algebra.toModule, norm_smul_le := β― }
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 π'.
Preimages of cobounded sets under the algebra map are cobounded.
In a normed algebra, the inclusion of the base field in the extended field is an isometry.
Equations
- NormedAlgebra.id π = { toSMul := NormedField.toNormedSpace.toSMul, algebraMap := Algebra.algebraMap, commutes' := β―, smul_def' := β―, norm_smul_le := β― }
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 = { toAlgebra := DivisionRing.toRatAlgebra, norm_smul_le := β― }
Equations
- PUnit.normedAlgebra π = { toAlgebra := PUnit.algebra, norm_smul_le := β― }
Equations
- instNormedAlgebraULift π π' = { toSMul := ULift.normedSpace.toSMul, algebraMap := Algebra.algebraMap, commutes' := β―, smul_def' := β―, norm_smul_le := β― }
The product of two normed algebras is a normed algebra, with the sup norm.
Equations
- Prod.normedAlgebra π = { toSMul := Prod.normedSpace.toSMul, algebraMap := Algebra.algebraMap, commutes' := β―, smul_def' := β―, norm_smul_le := β― }
The product of finitely many normed algebras is a normed algebra, with the sup norm.
Equations
- Pi.normedAlgebra π = { toSMul := Pi.normedSpace.toSMul, algebraMap := Algebra.algebraMap, commutes' := β―, smul_def' := β―, norm_smul_le := β― }
Equations
- SeparationQuotient.instNormedAlgebra π = { toSMul := inferInstance.toSMul, algebraMap := Algebra.algebraMap, commutes' := β―, smul_def' := β―, norm_smul_le := β― }
Equations
- MulOpposite.instNormedAlgebra π = { toAlgebra := MulOpposite.instAlgebra, norm_smul_le := β― }
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 = { toAlgebra := instββ΄, norm_smul_le := β― }
Instances For
Equations
- S.toNormedAlgebra = NormedAlgebra.induced π (β₯S) A S.val
Equations
- SubalgebraClass.toNormedAlgebra s = { toAlgebra := SubalgebraClass.toAlgebra s, norm_smul_le := β― }
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
If E is a normed space over π' and π is a normed algebra over π', then
RestrictScalars.module is additionally a NormedSpace.
Equations
- RestrictScalars.normedSpace π π' E = { toModule := RestrictScalars.module π π' E, norm_smul_le := β― }
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
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 = { toAlgebra := RestrictScalars.algebra π π' E, norm_smul_le := β― }
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
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 SeminormedSpace E instances from
scratch on a type with no preexisting distance or topology.
Instances For
Alias of SeminormedSpace.Core.
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 SeminormedSpace E instances from
scratch on a type with no preexisting distance or topology.
Instances For
Produces a PseudoMetricSpace E instance from a SeminormedSpace.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
Alias of PseudoMetricSpace.ofSeminormedSpaceCore.
Produces a PseudoMetricSpace E instance from a SeminormedSpace.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].
Instances For
Produces a PseudoEMetricSpace E instance from a SeminormedSpace.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].
Instances For
Alias of PseudoEMetricSpace.ofSeminormedSpaceCore.
Produces a PseudoEMetricSpace E instance from a SeminormedSpace.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
Instances For
Produces a PseudoEMetricSpace E instance from a SeminormedSpace.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
Alias of PseudoMetricSpace.ofSeminormedSpaceCoreReplaceUniformity.
Produces a PseudoEMetricSpace E instance from a SeminormedSpace.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 PseudoEMetricSpace E instance from a SeminormedSpace.Core on a type that
already has an existing topology. This requires a proof that the topology induced
by the norm is equal to the preexisting topology. See note [reducible non-instances].
Equations
Instances For
Produces a PseudoEMetricSpace E instance from a SeminormedSpace.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
Instances For
Alias of PseudoMetricSpace.ofSeminormedSpaceCoreReplaceAll.
Produces a PseudoEMetricSpace E instance from a SeminormedSpace.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
Instances For
Produces a SeminormedAddCommGroup E instance from a SeminormedSpace.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
- SeminormedAddCommGroup.ofCore core = { toNorm := instβΒΉ, toAddCommGroup := instβΒ², toPseudoMetricSpace := PseudoMetricSpace.ofSeminormedSpaceCore core, dist_eq := β― }
Instances For
Produces a SeminormedAddCommGroup E instance from a SeminormedSpace.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
- One or more equations did not get rendered due to their size.
Instances For
Produces a SeminormedAddCommGroup E instance from a SeminormedSpace.Core on a type
that already has an existing topology. This requires a proof that the uniformity
induced by the norm is equal to the preexisting uniformity. See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Produces a SeminormedAddCommGroup E instance from a SeminormedSpace.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
- One or more equations did not get rendered due to their size.
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.
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
- One or more equations did not get rendered due to their size.
Instances For
Produces a NormedAddCommGroup E instance from a NormedSpace.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
- One or more equations did not get rendered due to their size.
Instances For
Produces a NormedAddCommGroup E instance from a NormedSpace.Core on a type
that already has an existing topology. This requires a proof that the uniformity
induced by the norm is equal to the preexisting uniformity. See note [reducible non-instances].
Equations
- One or more equations did not get rendered due to their size.
Instances For
Produces a NormedAddCommGroup E instance from a NormedSpace.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
- One or more equations did not get rendered due to their size.
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 = { toModule := instβ, norm_smul_le := β― }
Instances For
A group homomorphism from a normed group to a real normed space,
bounded on a neighborhood of 0, must be continuous.