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 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
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
The Fourier transform as a linear map.
Equations
- FourierTransform.fourierā R E F = { toFun := FourierTransform.fourier, map_add' := āÆ, map_smul' := ⯠}
Instances For
The inverse Fourier transform as a linear map.
Equations
- FourierTransform.fourierInvā R E F = { toFun := FourierTransformInv.fourierInv, map_add' := āÆ, map_smul' := ⯠}
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 F = { toLinearMap := FourierTransform.fourierā R E F, invFun := FourierTransformInv.fourierInv, left_inv := āÆ, right_inv := ⯠}