Schwartz space #
This file defines the Schwartz space. Usually, the Schwartz space is defined as the set of smooth
functions $f : β^n β β$ such that there exists $C_{Ξ±Ξ²} > 0$ with $$|x^Ξ± β^Ξ² f(x)| < C_{Ξ±Ξ²}$$ for
all $x β β^n$ and for all multiindices $Ξ±, Ξ²$.
In mathlib, we use a slightly different approach and define the Schwartz space as all
smooth functions f : E β F
, where E
and F
are real normed vector spaces such that for all
natural numbers k
and n
we have uniform bounds βxβ^k * βiteratedFDeriv β n f xβ < C
.
This approach completely avoids using partial derivatives as well as polynomials.
We construct the topology on the Schwartz space by a family of seminorms, which are the best
constants in the above estimates. The abstract theory of topological vector spaces developed in
SeminormFamily.moduleFilterBasis
and WithSeminorms.toLocallyConvexSpace
turns the
Schwartz space into a locally convex topological vector space.
Main definitions #
SchwartzMap
: The Schwartz space is the space of smooth functions such that all derivatives decay faster than any power ofβxβ
.SchwartzMap.seminorm
: The family of seminorms as described aboveSchwartzMap.fderivCLM
: The differential as a continuous linear mapπ’(E, F) βL[π] π’(E, E βL[β] F)
SchwartzMap.derivCLM
: The one-dimensional derivative as a continuous linear mapπ’(β, F) βL[π] π’(β, F)
SchwartzMap.integralCLM
: Integration as a continuous linear mapπ’(β, F) βL[β] F
Main statements #
SchwartzMap.instUniformAddGroup
andSchwartzMap.instLocallyConvexSpace
: The Schwartz space is a locally convex topological vector space.SchwartzMap.one_add_le_sup_seminorm_apply
: For a Schwartz functionf
there is a uniform bound on(1 + βxβ) ^ k * βiteratedFDeriv β n f xβ
.
Implementation details #
The implementation of the seminorms is taken almost literally from ContinuousLinearMap.opNorm
.
Notation #
π’(E, F)
: The Schwartz spaceSchwartzMap E F
localized inSchwartzSpace
Tags #
Schwartz space, tempered distributions
A function is a Schwartz function if it is smooth and all derivatives decay faster than
any power of βxβ
.
- toFun : E β F
Instances For
A function is a Schwartz function if it is smooth and all derivatives decay faster than
any power of βxβ
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- SchwartzMap.instFunLike = { coe := fun (f : SchwartzMap E F) => f.toFun, coe_injective' := β― }
Helper instance for when there's too many metavariables to apply DFunLike.hasCoeToFun
.
Equations
- SchwartzMap.instCoeFun = DFunLike.hasCoeToFun
All derivatives of a Schwartz function are rapidly decaying.
Every Schwartz function is smooth.
Every Schwartz function is continuous.
Equations
- β― = β―
Every Schwartz function is differentiable.
Every Schwartz function is differentiable at any point.
Auxiliary lemma, used in proving the more general result isBigO_cocompact_rpow
.
Helper definition for the seminorms of the Schwartz space.
Equations
Instances For
If one controls the norm of every A x
, then one controls the norm of A
.
Algebraic properties #
Equations
- SchwartzMap.instSMul = { smul := fun (c : π) (f : SchwartzMap E F) => { toFun := c β’ βf, smooth' := β―, decay' := β― } }
Equations
- β― = β―
Equations
- β― = β―
Equations
- SchwartzMap.instNSMul = { smul := fun (c : β) (f : SchwartzMap E F) => { toFun := c β’ βf, smooth' := β―, decay' := β― } }
Equations
- SchwartzMap.instZSMul = { smul := fun (c : β€) (f : SchwartzMap E F) => { toFun := c β’ βf, smooth' := β―, decay' := β― } }
Equations
- SchwartzMap.instZero = { zero := { toFun := fun (x : E) => 0, smooth' := β―, decay' := β― } }
Equations
- SchwartzMap.instInhabited = { default := 0 }
Equations
- SchwartzMap.instNeg = { neg := fun (f : SchwartzMap E F) => { toFun := -βf, smooth' := β―, decay' := β― } }
Equations
- SchwartzMap.instAdd = { add := fun (f g : SchwartzMap E F) => { toFun := βf + βg, smooth' := β―, decay' := β― } }
Equations
- SchwartzMap.instSub = { sub := fun (f g : SchwartzMap E F) => { toFun := βf - βg, smooth' := β―, decay' := β― } }
Equations
- SchwartzMap.instAddCommGroup = Function.Injective.addCommGroup (fun (f : SchwartzMap E F) => βf) β― β― β― β― β― β― β―
Coercion as an additive homomorphism.
Equations
- SchwartzMap.coeHom E F = { toZeroHom := { toFun := fun (f : SchwartzMap E F) => βf, map_zero' := β― }, map_add' := β― }
Instances For
Equations
- SchwartzMap.instModule = Function.Injective.module π (SchwartzMap.coeHom E F) β― β―
Seminorms on Schwartz space #
The seminorms of the Schwartz space given by the best constants in the definition of
π’(E, F)
.
Equations
- SchwartzMap.seminorm π k n = Seminorm.ofSMulLE (SchwartzMap.seminormAux k n) β― β― β―
Instances For
If one controls the seminorm for every x
, then one controls the seminorm.
If one controls the seminorm for every x
, then one controls the seminorm.
Variant for functions π’(β, F)
.
The seminorm controls the Schwartz estimate for any fixed x
.
The seminorm controls the Schwartz estimate for any fixed x
.
Variant for functions π’(β, F)
.
The family of Schwartz seminorms.
Equations
- schwartzSeminormFamily π E F m = SchwartzMap.seminorm π m.1 m.2
Instances For
A more convenient version of le_sup_seminorm_apply
.
The set Finset.Iic m
is the set of all pairs (k', n')
with k' β€ m.1
and n' β€ m.2
.
Note that the constant is far from optimal.
The topology on the Schwartz space #
Equations
- β― = β―
Equations
- β― = β―
Equations
- SchwartzMap.instUniformSpace = AddGroupFilterBasis.uniformSpace (SeminormFamily.addGroupFilterBasis (schwartzSeminormFamily β E F))
Equations
- β― = β―
Equations
- β― = β―
Equations
- β― = β―
Functions of temperate growth #
A function is called of temperate growth if it is smooth and all iterated derivatives are polynomially bounded.
Equations
Instances For
A measure ΞΌ
has temperate growth if there is an n : β
such that (1 + βxβ) ^ (- n)
is
ΞΌ
-integrable.
Instances
Equations
- β― = β―
Equations
- β― = β―
Construction of continuous linear maps between Schwartz spaces #
Create a semilinear map between Schwartz spaces.
Note: This is a helper definition for mkCLM
.
Equations
- SchwartzMap.mkLM A hadd hsmul hsmooth hbound = { toAddHom := { toFun := fun (f : SchwartzMap D E) => { toFun := A βf, smooth' := β―, decay' := β― }, map_add' := β― }, map_smul' := β― }
Instances For
Create a continuous semilinear map between Schwartz spaces.
For an example of using this definition, see fderivCLM
.
Equations
- SchwartzMap.mkCLM A hadd hsmul hsmooth hbound = { toLinearMap := SchwartzMap.mkLM A hadd hsmul hsmooth hbound, cont := β― }
Instances For
Define a continuous semilinear map from Schwartz space to a normed space.
Equations
- SchwartzMap.mkCLMtoNormedSpace A hadd hsmul hbound = { toLinearMap := { toAddHom := { toFun := fun (x : SchwartzMap D E) => A x, map_add' := hadd }, map_smul' := hsmul }, cont := β― }
Instances For
The map applying a vector to Hom-valued Schwartz function as a continuous linear map.
Equations
- SchwartzMap.evalCLM m = SchwartzMap.mkCLM (fun (f : E β E βL[β] F) (x : E) => (f x) m) β― β― β― β―
Instances For
The map f β¦ (x β¦ B (f x) (g x))
as a continuous π
-linear map on Schwartz space,
where B
is a continuous π
-linear map and g
is a function of temperate growth.
Equations
- SchwartzMap.bilinLeftCLM B hg = SchwartzMap.mkCLM (fun (f : D β E) (x : D) => (B (f x)) (g x)) β― β― β― β―
Instances For
Composition with a function on the right is a continuous linear map on Schwartz space provided that the function is temperate and growths polynomially near infinity.
Equations
- SchwartzMap.compCLM π hg hg_upper = SchwartzMap.mkCLM (fun (f : E β F) (x : D) => f (g x)) β― β― β― β―
Instances For
Derivatives of Schwartz functions #
The FrΓ©chet derivative on Schwartz space as a continuous π
-linear map.
Equations
- SchwartzMap.fderivCLM π = SchwartzMap.mkCLM (fderiv β) β― β― β― β―
Instances For
The 1-dimensional derivative on Schwartz space as a continuous π
-linear map.
Equations
- SchwartzMap.derivCLM π = SchwartzMap.mkCLM (fun (f : β β F) => deriv f) β― β― β― β―
Instances For
The partial derivative (or directional derivative) in the direction m : E
as a
continuous linear map on Schwartz space.
Equations
- SchwartzMap.pderivCLM π m = ContinuousLinearMap.comp (SchwartzMap.evalCLM m) (SchwartzMap.fderivCLM π)
Instances For
The iterated partial derivative (or directional derivative) as a continuous linear map on Schwartz space.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Integration #
The integral as a continuous linear map from Schwartz space to the codomain.
Equations
- SchwartzMap.integralCLM π ΞΌ = SchwartzMap.mkCLMtoNormedSpace (fun (x : SchwartzMap D V) => β« (x_1 : D), x x_1 βΞΌ) β― β― β―
Instances For
Inclusion into the space of bounded continuous functions #
Equations
- β― = β―
Schwartz functions as bounded continuous functions
Equations
- SchwartzMap.toBoundedContinuousFunction f = BoundedContinuousFunction.ofNormedAddCommGroup βf β― ((SchwartzMap.seminorm β 0 0) f) β―
Instances For
Schwartz functions as continuous functions
Equations
- SchwartzMap.toContinuousMap f = (SchwartzMap.toBoundedContinuousFunction f).toContinuousMap
Instances For
The inclusion map from Schwartz functions to bounded continuous functions as a continuous linear map.
Equations
- SchwartzMap.toBoundedContinuousFunctionCLM π E F = SchwartzMap.mkCLMtoNormedSpace SchwartzMap.toBoundedContinuousFunction β― β― β―
Instances For
The Dirac delta distribution
Equations
- SchwartzMap.delta π F x = ContinuousLinearMap.comp (BoundedContinuousFunction.evalCLM π x) (SchwartzMap.toBoundedContinuousFunctionCLM π E F)
Instances For
Integrating against the Dirac measure is equal to the delta distribution.
Equations
- β― = β―
Schwartz functions as continuous functions vanishing at infinity.
Equations
- SchwartzMap.toZeroAtInfty f = { toContinuousMap := { toFun := βf, continuous_toFun := β― }, zero_at_infty' := β― }
Instances For
The inclusion map from Schwartz functions to continuous functions vanishing at infinity as a continuous linear map.
Equations
- SchwartzMap.toZeroAtInftyCLM π E F = SchwartzMap.mkCLMtoNormedSpace SchwartzMap.toZeroAtInfty β― β― β―