Imports
/-
Copyright (c) 2026 Adam Bornemann. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Adam Bornemann
-/
module
public import Mathlib.Analysis.Fourier.LpSpace
public import Physlib.QuantumMechanics.HilbertSpaces.SpaceD.SchwartzSubmodule
The Fourier transform on SpaceDHilbertSpace
i. Overview
In this module we define the Fourier transform on SpaceDHilbertSpace d as a unitary operator.
Mathlib's LΒ² Fourier transform MeasureTheory.Lp.fourierTransformβα΅’ is a linear isometry
equivalence of Lp β 2 volume, hence of SpaceDHilbertSpace d, onto itself; packaged as
fourierUnitary d.
ii. Key results
fourierUnitary d : the LΒ² Fourier transform as a unitary
SpaceDHilbertSpace d ββα΅’[β] SpaceDHilbertSpace d, acting as π/πβ»
(fourierUnitary_apply, fourierUnitary_symm_apply).
schwartzIncl_fourier_eq : π (schwartzIncl f) = schwartzIncl (π f).
schwartzIncl_fourierInv_eq : the inverse acts by the inverse Schwartz Fourier transform.
fourierUnitary_map_schwartzSubmodule : fourierUnitary d maps the Schwartz submodule onto
itself.
iii. Table of contents
A. The Fourier unitary
B. Action on the Schwartz submodule
iv. References
@[expose] public sectionA. The Fourier unitary
fourierUnitary d acts as the LΒ² Fourier transform π.
@[simp]
lemma fourierUnitary_apply (Ο : SpaceDHilbertSpace d) : fourierUnitary d Ο = π Ο := rfl
(fourierUnitary d).symm acts as the inverse LΒ² Fourier transform πβ».
@[simp]
lemma fourierUnitary_symm_apply (Ο : SpaceDHilbertSpace d) : (fourierUnitary d).symm Ο = πβ» Ο := rflB. Action on the Schwartz submodule
Applying fourierUnitary d to the LΒ² class of a Schwartz map f gives the LΒ² class of the
Schwartz Fourier transform π f.
lemma schwartzIncl_fourier_eq (f : π’(Space d, β)) :
π (schwartzIncl volume f) = schwartzIncl volume (π f) := SchwartzMap.toLp_fourier_eq f
Applying πβ» to the LΒ² class of a Schwartz map f gives the LΒ² class of the inverse
Schwartz Fourier transform πβ» f.
lemma schwartzIncl_fourierInv_eq (f : π’(Space d, β)) :
πβ» (schwartzIncl volume f) = schwartzIncl volume (πβ» f) :=
SchwartzMap.toLp_fourierInv_eq f
Pulling the LΒ² class of π f back through the Fourier unitary recovers the LΒ² class of f.
All goals completed! πThe Fourier unitary maps the Schwartz submodule onto itself.
lemma fourierUnitary_map_schwartzSubmodule :
(SchwartzSubmodule d).map (fourierUnitary d).toLinearMap = SchwartzSubmodule d := by d:ββ’ Submodule.map (β(fourierUnitary d).toLinearEquiv) (SchwartzSubmodule d volume) = SchwartzSubmodule d volume
apply le_antisymm a d:ββ’ Submodule.map (β(fourierUnitary d).toLinearEquiv) (SchwartzSubmodule d volume) β€ SchwartzSubmodule d volumea d:ββ’ SchwartzSubmodule d volume β€ Submodule.map (β(fourierUnitary d).toLinearEquiv) (SchwartzSubmodule d volume)
Β· a d:ββ’ Submodule.map (β(fourierUnitary d).toLinearEquiv) (SchwartzSubmodule d volume) β€ SchwartzSubmodule d volume rintro x β¨y, β¨f, rflβ©, rflβ© a d:βf:π’(Space d, β)β’ β(fourierUnitary d).toLinearEquiv (β(schwartzIncl volume) f) β SchwartzSubmodule d volume
exact β¨π f, (schwartzIncl_fourier_eq f).symmβ© All goals completed! π
Β· a d:ββ’ SchwartzSubmodule d volume β€ Submodule.map (β(fourierUnitary d).toLinearEquiv) (SchwartzSubmodule d volume) rintro x β¨g, rflβ© a d:βg:π’(Space d, β)β’ β(schwartzIncl volume) g β Submodule.map (β(fourierUnitary d).toLinearEquiv) (SchwartzSubmodule d volume)
exact β¨πβ» (schwartzIncl volume g), β¨πβ» g, (schwartzIncl_fourierInv_eq g).symmβ©, by d:βg:π’(Space d, β)β’ β(fourierUnitary d).toLinearEquiv (πβ» ((schwartzIncl volume) g)) = β(schwartzIncl volume) g simp All goals completed! πβ©