Type classes for the Fourier transform #
In this file we define type classes for the Fourier transform and the inverse Fourier transform.
We introduce the notation š and šā» in these classes to denote the Fourier transform and
the inverse Fourier transform, respectively.
Moreover, we provide type-classes that encode the linear structure and the Fourier inversion theorem.
The notation typeclass for the Fourier transform.
While the Fourier transform is a linear operator, the notation is for the function E ā F without
any additional properties. This makes it possible to use the notation for functions where
integrability is an issue.
Moreover, including a scalar multiplication causes problems for inferring the notation type class.
- fourier : E ā F
š fis the Fourier transform off. The meaning of this notation is type-dependent.
Instances
The notation typeclass for the inverse Fourier transform.
While the inverse Fourier transform is a linear operator, the notation is for the function E ā F
without any additional properties. This makes it possible to use the notation for functions where
integrability is an issue.
Moreover, including a scalar multiplication causes problems for inferring the notation type class.
- fourierInv : E ā F
šā» fis the inverse Fourier transform off. The meaning of this notation is type-dependent.
Instances
š f is the Fourier transform of f. The meaning of this notation is type-dependent.
Equations
- FourierTransform.termš = Lean.ParserDescr.node `FourierTransform.termš 1024 (Lean.ParserDescr.symbol "š")
Instances For
šā» f is the inverse Fourier transform of f. The meaning of this notation is
type-dependent.
Equations
- FourierTransform.Ā«termšā»Ā» = Lean.ParserDescr.node `FourierTransform.Ā«termšā»Ā» 1024 (Lean.ParserDescr.symbol "šā»")
Instances For
A FourierAdd is a function space on which the Fourier transform is additive.
- fourier_add (f g : E) : FourierTransform.fourier (f + g) = FourierTransform.fourier f + FourierTransform.fourier g
Instances
A FourierSMul is a function space on which the Fourier transform is homogeneous.
- fourier_smul (r : R) (f : E) : FourierTransform.fourier (r ⢠f) = r ⢠FourierTransform.fourier f
Instances
The Fourier transform is continuous.
- continuous_fourier : Continuous FourierTransform.fourier
Instances
A FourierInvAdd is a function space on which the inverse Fourier transform is additive.
- fourierInv_add (f g : E) : FourierTransformInv.fourierInv (f + g) = FourierTransformInv.fourierInv f + FourierTransformInv.fourierInv g
Instances
A FourierInvSMul is a function space on which the inverse Fourier transform is homogeneous.
- fourierInv_smul (r : R) (f : E) : FourierTransformInv.fourierInv (r ⢠f) = r ⢠FourierTransformInv.fourierInv f
Instances
The inverse Fourier transform is continuous.
- continuous_fourierInv : Continuous FourierTransformInv.fourierInv
Instances
A FourierModule is a function space on which the Fourier transform is a linear map.
- fourier : E ā F
- fourier_add (f g : E) : FourierTransform.fourier (f + g) = FourierTransform.fourier f + FourierTransform.fourier g
- fourier_smul (r : R) (f : E) : FourierTransform.fourier (r ⢠f) = r ⢠FourierTransform.fourier f
Instances For
A FourierInvModule is a function space on which the Fourier transform is a linear map.
- fourierInv : E ā F
- fourierInv_add (f g : E) : FourierTransformInv.fourierInv (f + g) = FourierTransformInv.fourierInv f + FourierTransformInv.fourierInv g
- fourierInv_smul (r : R) (f : E) : FourierTransformInv.fourierInv (r ⢠f) = r ⢠FourierTransformInv.fourierInv f
Instances For
The Fourier transform as a linear map.
Equations
- FourierTransform.fourierā R E = { toFun := FourierTransform.fourier, map_add' := āÆ, map_smul' := ⯠}
Instances For
The Fourier transform as a continuous linear map.
Equations
- FourierTransform.fourierCLM R E = { toLinearMap := FourierTransform.fourierā R E, cont := ⯠}
Instances For
The inverse Fourier transform as a linear map.
Equations
- FourierTransform.fourierInvā R E = { toFun := FourierTransformInv.fourierInv, map_add' := āÆ, map_smul' := ⯠}
Instances For
The inverse Fourier transform as a continuous linear map.
Equations
- FourierTransform.fourierInvCLM R E = { toFun := FourierTransformInv.fourierInv, map_add' := āÆ, map_smul' := āÆ, cont := ⯠}
Instances For
A FourierPair is a pair of spaces E and F such that šā» ā š = id on E.
Instances
A FourierInvPair is a pair of spaces E and F such that š ā šā» = id on E.
Instances
The Fourier transform as a linear equivalence.
Equations
- FourierTransform.fourierEquiv R E = { toLinearMap := FourierTransform.fourierā R E, invFun := FourierTransformInv.fourierInv, left_inv := āÆ, right_inv := ⯠}
Instances For
The Fourier transform as a continuous linear equivalence.
Equations
- FourierTransform.fourierCLE R E = { toLinearEquiv := FourierTransform.fourierEquiv R E, continuous_toFun := āÆ, continuous_invFun := ⯠}