Documentation

Mathlib.Analysis.Fourier.Notation

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.

class FourierTransform (E : Type u) (F : outParam (Type v)) :
Type (max u v)

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.

  • fourierTransform : E → F

    š“• f is the Fourier transform of f. The meaning of this notation is type-dependent.

Instances
    class FourierTransformInv (E : Type u) (F : outParam (Type v)) :
    Type (max u v)

    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.

    • fourierTransformInv : E → F

      š“•ā» f is the inverse Fourier transform of f. 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
      Instances For

        š“•ā» f is the inverse Fourier transform of f. The meaning of this notation is type-dependent.

        Equations
        Instances For
          class FourierModule (R : Type u_1) (E : Type u_2) (F : outParam (Type u_3)) [Add E] [Add F] [SMul R E] [SMul R F] extends FourierTransform E F :
          Type (max u_2 u_3)

          A FourierModule is a function space on which the Fourier transform is a linear map.

          Instances
            class FourierInvModule (R : Type u_1) (E : Type u_2) (F : outParam (Type u_3)) [Add E] [Add F] [SMul R E] [SMul R F] extends FourierTransformInv E F :
            Type (max u_2 u_3)

            A FourierInvModule is a function space on which the Fourier transform is a linear map.

            Instances
              def FourierTransform.fourierā‚— (R : Type u_1) (E : Type u_2) (F : Type u_3) [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierModule R E F] :

              The Fourier transform as a linear map.

              Equations
              Instances For
                @[simp]
                theorem FourierTransform.fourierā‚—_apply {R : Type u_1} {E : Type u_2} {F : Type u_3} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierModule R E F] (f : E) :
                @[simp]
                theorem FourierTransform.fourier_zero {R : Type u_1} {E : Type u_2} {F : Type u_3} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierModule R E F] :
                def FourierTransform.fourierInvā‚— (R : Type u_1) (E : Type u_2) (F : Type u_3) [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierInvModule R E F] :

                The inverse Fourier transform as a linear map.

                Equations
                Instances For
                  @[simp]
                  theorem FourierTransform.fourierInvā‚—_apply {R : Type u_1} {E : Type u_2} {F : Type u_3} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierInvModule R E F] (f : E) :
                  @[simp]
                  theorem FourierTransform.fourierInv_zero {R : Type u_1} {E : Type u_2} {F : Type u_3} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierInvModule R E F] :
                  class FourierPair (E : Type u_1) (F : Type u_2) [FourierTransform E F] [FourierTransformInv F E] :

                  A FourierPair is a pair of spaces E and F such that š“•ā» ∘ š“• = id on E.

                  Instances
                    class FourierInvPair (E : Type u_1) (F : Type u_2) [FourierTransform F E] [FourierTransformInv E F] :

                    A FourierInvPair is a pair of spaces E and F such that š“• ∘ š“•ā» = id on E.

                    Instances
                      def FourierTransform.fourierEquiv (R : Type u_1) (E : Type u_2) (F : Type u_3) [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierModule R E F] [FourierInvModule R F E] [FourierPair E F] [FourierInvPair F E] :

                      The Fourier transform as a linear equivalence.

                      Equations
                      Instances For
                        @[simp]
                        theorem FourierTransform.fourierEquiv_apply {R : Type u_1} {E : Type u_2} {F : Type u_3} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierModule R E F] [FourierInvModule R F E] [FourierPair E F] [FourierInvPair F E] (f : E) :
                        @[simp]
                        theorem FourierTransform.fourierEquiv_symm_apply {R : Type u_1} {E : Type u_2} {F : Type u_3} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F] [FourierModule R E F] [FourierInvModule R F E] [FourierPair E F] [FourierInvPair F E] (f : F) :