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)
Main statements #
SchwartzMap.instUniformAddGroupandSchwartzMap.instLocallyConvexSpace: The Schwartz space is a locally convex topological vector space.SchwartzMap.one_add_le_sup_seminorm_apply: For a Schwartz functionfthere 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 Flocalized 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
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
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
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
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 linear map.
Equations
- SchwartzMap.toBoundedContinuousFunctionLM π E F = { toAddHom := { toFun := fun (f : SchwartzMap E F) => SchwartzMap.toBoundedContinuousFunction f, map_add' := β― }, map_smul' := β― }
Instances For
The inclusion map from Schwartz functions to bounded continuous functions as a continuous linear map.
Equations
- SchwartzMap.toBoundedContinuousFunctionCLM π E F = let __src := SchwartzMap.toBoundedContinuousFunctionLM π E F; { toLinearMap := __src, cont := β― }
Instances For
The Dirac delta distribution
Equations
- SchwartzMap.delta π F x = ContinuousLinearMap.comp (BoundedContinuousFunction.evalCLM π x) (SchwartzMap.toBoundedContinuousFunctionCLM π E F)
Instances For
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 linear map.
Equations
- SchwartzMap.toZeroAtInftyLM π E F = { toAddHom := { toFun := fun (f : SchwartzMap E F) => SchwartzMap.toZeroAtInfty f, map_add' := β― }, map_smul' := β― }
Instances For
The inclusion map from Schwartz functions to continuous functions vanishing at infinity as a continuous linear map.
Equations
- SchwartzMap.toZeroAtInftyCLM π E F = let __src := SchwartzMap.toZeroAtInftyLM π E F; { toLinearMap := __src, cont := β― }