Skip to content

Commit ede1a9b

Browse files
committed
feat(Analysis/Fourier): introduce notation type class for the Fourier transform (#31115)
The reason for introducing this is that the Fourier transform extends to various function spaces, where it is no longer defined as an integral. We still want to use the notation `𝓕` in that case. In the file `FourierSchwartz` it becomes apparent how the current definition of `𝓕` causes a lot of coercions that should not be there as we lose the information that the Fourier transform of a Schwartz function is again a Schwartz function. Using the new notation type class for Schwartz function is done in a subsequent PR.
1 parent 2181896 commit ede1a9b

File tree

8 files changed

+199
-34
lines changed

8 files changed

+199
-34
lines changed

Mathlib.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1732,6 +1732,7 @@ import Mathlib.Analysis.Fourier.FiniteAbelian.PontryaginDuality
17321732
import Mathlib.Analysis.Fourier.FourierTransform
17331733
import Mathlib.Analysis.Fourier.FourierTransformDeriv
17341734
import Mathlib.Analysis.Fourier.Inversion
1735+
import Mathlib.Analysis.Fourier.Notation
17351736
import Mathlib.Analysis.Fourier.PoissonSummation
17361737
import Mathlib.Analysis.Fourier.RiemannLebesgueLemma
17371738
import Mathlib.Analysis.Fourier.ZMod

Mathlib/Analysis/Distribution/FourierSchwartz.lean

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ variable
3131
/-- The Fourier transform on a real inner product space, as a continuous linear map on the
3232
Schwartz space. -/
3333
noncomputable def fourierTransformCLM : 𝓢(V, E) →L[𝕜] 𝓢(V, E) := by
34-
refine mkCLM (𝓕 ·) ?_ ?_ ?_ ?_
34+
refine mkCLM ((𝓕 : (V → E) → (V → E)) ·) ?_ ?_ ?_ ?_
3535
· intro f g x
3636
simp only [fourierIntegral_eq, add_apply, smul_add]
3737
rw [integral_add]
@@ -78,17 +78,17 @@ noncomputable def fourierTransformCLM : 𝓢(V, E) →L[𝕜] 𝓢(V, E) := by
7878
_ = _ := by simp [mul_assoc]
7979

8080
@[simp] lemma fourierTransformCLM_apply (f : 𝓢(V, E)) :
81-
fourierTransformCLM 𝕜 f = 𝓕 f := rfl
81+
fourierTransformCLM 𝕜 f = 𝓕 (f : V → E) := rfl
8282

8383
variable [CompleteSpace E]
8484

8585
@[simp]
86-
theorem fourier_inversion (f : 𝓢(V, E)) (x : V) : 𝓕⁻ (𝓕 f) x = f x :=
86+
theorem fourier_inversion (f : 𝓢(V, E)) (x : V) : 𝓕⁻ (𝓕 (f : V → E)) x = f x :=
8787
Integrable.fourier_inversion f.integrable (fourierTransformCLM ℂ f).integrable
8888
f.continuous.continuousAt
8989

9090
@[simp]
91-
theorem fourier_inversion_inv (f : 𝓢(V, E)) (x : V) : 𝓕 (𝓕⁻ f) x = f x :=
91+
theorem fourier_inversion_inv (f : 𝓢(V, E)) (x : V) : 𝓕 (𝓕⁻ (f : V → E)) x = f x :=
9292
Integrable.fourier_inversion_inv f.integrable (fourierTransformCLM ℂ f).integrable
9393
f.continuous.continuousAt
9494

@@ -101,13 +101,13 @@ variable [CompleteSpace F]
101101
/-- The Fourier transform satisfies `∫ 𝓕 f * g = ∫ f * 𝓕 g`, i.e., it is self-adjoint.
102102
Version where the multiplication is replaced by a general bilinear form `M`. -/
103103
theorem integral_bilin_fourierIntegral_eq (f : 𝓢(V, E)) (g : 𝓢(V, F)) (M : E →L[ℂ] F →L[ℂ] G) :
104-
∫ ξ, M (𝓕 f ξ) (g ξ) = ∫ x, M (f x) (𝓕 g x) := by
104+
∫ ξ, M (𝓕 (f : V → E) ξ) (g ξ) = ∫ x, M (f x) (𝓕 (g : V → F) x) := by
105105
have := VectorFourier.integral_bilin_fourierIntegral_eq_flip M (μ := volume) (ν := volume)
106106
(L := (innerₗ V)) continuous_fourierChar continuous_inner f.integrable g.integrable
107107
rwa [flip_innerₗ] at this
108108

109109
theorem integral_sesq_fourierIntegral_eq (f : 𝓢(V, E)) (g : 𝓢(V, F)) (M : E →L⋆[ℂ] F →L[ℂ] G) :
110-
∫ ξ, M (𝓕 f ξ) (g ξ) = ∫ x, M (f x) (𝓕⁻ g x) := by
110+
∫ ξ, M (𝓕 (f : V → E) ξ) (g ξ) = ∫ x, M (f x) (𝓕⁻ (g : V → F) x) := by
111111
have := VectorFourier.integral_sesq_fourierIntegral_eq_neg_flip M (μ := volume) (ν := volume)
112112
(L := (innerₗ V)) continuous_fourierChar continuous_inner f.integrable g.integrable
113113
rwa [flip_innerₗ] at this
@@ -116,19 +116,19 @@ theorem integral_sesq_fourierIntegral_eq (f : 𝓢(V, E)) (g : 𝓢(V, F)) (M :
116116
117117
Version where the multiplication is replaced by a general bilinear form `M`. -/
118118
theorem integral_sesq_fourier_fourier (f : 𝓢(V, E)) (g : 𝓢(V, F)) (M : E →L⋆[ℂ] F →L[ℂ] G) :
119-
∫ ξ, M (𝓕 f ξ) (𝓕 g ξ) = ∫ x, M (f x) (g x) := by
119+
∫ ξ, M (𝓕 (f : V → E) ξ) (𝓕 (g : V → F) ξ) = ∫ x, M (f x) (g x) := by
120120
simpa only [fourierTransformCLM_apply, fourier_inversion]
121121
using integral_sesq_fourierIntegral_eq f (fourierTransformCLM ℂ g) M
122122

123123
variable {H : Type*} [NormedAddCommGroup H] [InnerProductSpace ℂ H] [CompleteSpace H]
124124

125125
/-- Plancherel's theorem for Schwartz functions. -/
126126
theorem integral_inner_fourier_fourier (f g : 𝓢(V, H)) :
127-
∫ ξ, ⟪𝓕 f ξ, 𝓕 g ξ⟫ = ∫ x, ⟪f x, g x⟫ :=
127+
∫ ξ, ⟪𝓕 (f : V → H) ξ, 𝓕 (g : V → H) ξ⟫ = ∫ x, ⟪f x, g x⟫ :=
128128
integral_sesq_fourier_fourier f g (innerSL ℂ)
129129

130130
theorem integral_norm_sq_fourier (f : 𝓢(V, H)) :
131-
∫ ξ, ‖𝓕 f ξ‖^2 = ∫ x, ‖f x‖^2 := by
131+
∫ ξ, ‖𝓕 (f : V → H) ξ‖^2 = ∫ x, ‖f x‖^2 := by
132132
apply Complex.ofRealLI.injective
133133
simp only [← LinearIsometry.integral_comp_comm]
134134
convert integral_inner_fourier_fourier f f <;>
@@ -153,22 +153,22 @@ noncomputable def fourierTransformCLE : 𝓢(V, E) ≃L[𝕜] 𝓢(V, E) where
153153
left_inv := by
154154
intro f
155155
ext x
156-
change 𝓕 (𝓕 f) (-x) = f x
156+
change 𝓕 (𝓕 (f : V → E)) (-x) = f x
157157
rw [← fourierIntegralInv_eq_fourierIntegral_neg, Continuous.fourier_inversion f.continuous
158158
f.integrable (fourierTransformCLM 𝕜 f).integrable]
159159
right_inv := by
160160
intro f
161161
ext x
162-
change 𝓕 (fun x ↦ (𝓕 f) (-x)) x = f x
162+
change 𝓕 (fun (x : V) ↦ ((𝓕 (f : V → E)) (-x) : E)) x = f x
163163
simp_rw [← fourierIntegralInv_eq_fourierIntegral_neg, Continuous.fourier_inversion_inv
164164
f.continuous f.integrable (fourierTransformCLM 𝕜 f).integrable]
165165
continuous_invFun := ContinuousLinearMap.continuous _
166166

167167
@[simp] lemma fourierTransformCLE_apply (f : 𝓢(V, E)) :
168-
fourierTransformCLE 𝕜 f = 𝓕 f := rfl
168+
fourierTransformCLE 𝕜 f = 𝓕 (f : V → E) := rfl
169169

170170
@[simp] lemma fourierTransformCLE_symm_apply (f : 𝓢(V, E)) :
171-
(fourierTransformCLE 𝕜).symm f = 𝓕⁻ f := by
171+
(fourierTransformCLE 𝕜).symm f = 𝓕⁻ (f : V → E) := by
172172
ext x
173173
exact (fourierIntegralInv_eq_fourierIntegral_neg f x).symm
174174

Mathlib/Analysis/Fourier/FourierTransform.lean

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Authors: David Loeffler
55
-/
66
import Mathlib.Algebra.Group.AddChar
77
import Mathlib.Analysis.Complex.Circle
8+
import Mathlib.Analysis.Fourier.Notation
89
import Mathlib.MeasureTheory.Group.Integral
910
import Mathlib.MeasureTheory.Integral.Prod
1011
import Mathlib.MeasureTheory.Integral.Bochner.Set
@@ -413,20 +414,17 @@ open scoped RealInnerProductSpace
413414

414415
variable [FiniteDimensional ℝ V]
415416

416-
/-- The Fourier transform of a function on an inner product space, with respect to the standard
417-
additive character `ω ↦ exp (2 i π ω)`.
418-
Denoted as `𝓕` within the `Real.FourierTransform` namespace. -/
419-
def fourierIntegral (f : V → E) (w : V) : E :=
420-
VectorFourier.fourierIntegral 𝐞 volume (innerₗ V) f w
417+
instance FourierTransform : FourierTransform (V → E) (V → E) where
418+
fourierTransform f := VectorFourier.fourierIntegral 𝐞 volume (innerₗ V) f
421419

422-
/-- The inverse Fourier transform of a function on an inner product space, defined as the Fourier
423-
transform but with opposite sign in the exponential.
424-
Denoted as `𝓕⁻¹` within the `Real.FourierTransform` namespace. -/
425-
def fourierIntegralInv (f : V → E) (w : V) : E :=
426-
VectorFourier.fourierIntegral 𝐞 volume (-innerₗ V) f w
420+
instance FourierTransformInv : FourierTransformInv (V → E) (V → E) where
421+
fourierTransformInv f w := VectorFourier.fourierIntegral 𝐞 volume (-innerₗ V) f w
427422

428-
@[inherit_doc] scoped[FourierTransform] notation "𝓕" => Real.fourierIntegral
429-
@[inherit_doc] scoped[FourierTransform] notation "𝓕⁻" => Real.fourierIntegralInv
423+
@[deprecated (since := "2025-11-12")]
424+
alias fourierIntegral := FourierTransform.fourierTransform
425+
426+
@[deprecated (since := "2025-11-12")]
427+
alias fourierIntegralInv := FourierTransform.fourierTransformInv
430428

431429
lemma fourierIntegral_eq (f : V → E) (w : V) :
432430
𝓕 f w = ∫ v, 𝐞 (-⟪v, w⟫) • f v := rfl
@@ -437,7 +435,7 @@ lemma fourierIntegral_eq' (f : V → E) (w : V) :
437435

438436
lemma fourierIntegralInv_eq (f : V → E) (w : V) :
439437
𝓕⁻ f w = ∫ v, 𝐞 ⟪v, w⟫ • f v := by
440-
simp [fourierIntegralInv, VectorFourier.fourierIntegral]
438+
simp [FourierTransformInv.fourierTransformInv, VectorFourier.fourierIntegral]
441439

442440
lemma fourierIntegralInv_eq' (f : V → E) (w : V) :
443441
𝓕⁻ f w = ∫ v, Complex.exp ((↑(2 * π * ⟪v, w⟫) * Complex.I)) • f v := by
@@ -469,7 +467,7 @@ lemma fourierIntegralInv_comp_linearIsometry (A : W ≃ₗᵢ[ℝ] V) (f : V →
469467
simp [fourierIntegralInv_eq_fourierIntegral_neg, fourierIntegral_comp_linearIsometry]
470468

471469
theorem fourierIntegral_real_eq (f : ℝ → E) (w : ℝ) :
472-
fourierIntegral f w = ∫ v : ℝ, 𝐞 (-(v * w)) • f v := by
470+
𝓕 f w = ∫ v : ℝ, 𝐞 (-(v * w)) • f v := by
473471
simp_rw [mul_comm _ w]
474472
rfl
475473

Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
/-
2+
Copyright (c) 2025 Moritz Doll. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Moritz Doll
5+
-/
6+
import Mathlib.Algebra.Module.Equiv.Defs
7+
8+
/-! # Type classes for the Fourier transform
9+
10+
In this file we define type classes for the Fourier transform and the inverse Fourier transform.
11+
We introduce the notation `𝓕` and `𝓕⁻` in these classes to denote the Fourier transform and
12+
the inverse Fourier transform, respectively.
13+
14+
Moreover, we provide type-classes that encode the linear structure and the Fourier inversion
15+
theorem.
16+
-/
17+
18+
universe u v w
19+
20+
/--
21+
The notation typeclass for the Fourier transform.
22+
23+
While the Fourier transform is a linear operator, the notation is for the function `E → F` without
24+
any additional properties. This makes it possible to use the notation for functions where
25+
integrability is an issue.
26+
Moreover, including a scalar multiplication causes problems for inferring the notation type class.
27+
-/
28+
class FourierTransform (E : Type u) (F : outParam (Type v)) where
29+
/-- `𝓕 f` is the Fourier transform of `f`. The meaning of this notation is type-dependent. -/
30+
fourierTransform : E → F
31+
32+
/--
33+
The notation typeclass for the inverse Fourier transform.
34+
35+
While the inverse Fourier transform is a linear operator, the notation is for the function `E → F`
36+
without any additional properties. This makes it possible to use the notation for functions where
37+
integrability is an issue.
38+
Moreover, including a scalar multiplication causes problems for inferring the notation type class.
39+
-/
40+
class FourierTransformInv (E : Type u) (F : outParam (Type v)) where
41+
/-- `𝓕⁻ f` is the inverse Fourier transform of `f`. The meaning of this notation is
42+
type-dependent. -/
43+
fourierTransformInv : E → F
44+
45+
namespace FourierTransform
46+
47+
export FourierTransformInv (fourierTransformInv)
48+
49+
@[inherit_doc] scoped notation "𝓕" => fourierTransform
50+
@[inherit_doc] scoped notation "𝓕⁻" => fourierTransformInv
51+
52+
end FourierTransform
53+
54+
section Module
55+
56+
open scoped FourierTransform
57+
58+
/-- A `FourierModule` is a function space on which the Fourier transform is a linear map. -/
59+
class FourierModule (R : Type*) (E : Type*) (F : outParam (Type*)) [Add E] [Add F] [SMul R E]
60+
[SMul R F] extends FourierTransform E F where
61+
fourier_add : ∀ (f g : E), 𝓕 (f + g) = 𝓕 f + 𝓕 g
62+
fourier_smul : ∀ (r : R) (f : E), 𝓕 (r • f) = r • 𝓕 f
63+
64+
/-- A `FourierInvModule` is a function space on which the Fourier transform is a linear map. -/
65+
class FourierInvModule (R : Type*) (E : Type*) (F : outParam (Type*)) [Add E] [Add F] [SMul R E]
66+
[SMul R F] extends FourierTransformInv E F where
67+
fourierInv_add : ∀ (f g : E), 𝓕⁻ (f + g) = 𝓕⁻ f + 𝓕⁻ g
68+
fourierInv_smul : ∀ (r : R) (f : E), 𝓕⁻ (r • f) = r • 𝓕⁻ f
69+
70+
namespace FourierTransform
71+
72+
export FourierModule (fourier_add fourier_smul)
73+
export FourierInvModule (fourierInv_add fourierInv_smul)
74+
75+
attribute [simp] fourier_add
76+
attribute [simp] fourier_smul
77+
attribute [simp] FourierInvModule.fourierInv_add
78+
attribute [simp] FourierInvModule.fourierInv_smul
79+
80+
variable {R E F : Type*} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F]
81+
82+
section fourierₗ
83+
84+
variable [FourierModule R E F]
85+
86+
variable (R E F) in
87+
/-- The Fourier transform as a linear map. -/
88+
def fourierₗ : E →ₗ[R] F where
89+
toFun := 𝓕
90+
map_add' := fourier_add
91+
map_smul' := fourier_smul
92+
93+
@[simp]
94+
lemma fourierₗ_apply (f : E) : fourierₗ R E F f = 𝓕 f := rfl
95+
96+
@[simp]
97+
lemma fourier_zero : 𝓕 (0 : E) = 0 :=
98+
(fourierₗ R E F).map_zero
99+
100+
end fourierₗ
101+
102+
section fourierInvₗ
103+
104+
variable [FourierInvModule R E F]
105+
106+
variable (R E F) in
107+
/-- The inverse Fourier transform as a linear map. -/
108+
def fourierInvₗ : E →ₗ[R] F where
109+
toFun := 𝓕⁻
110+
map_add' := fourierInv_add
111+
map_smul' := fourierInv_smul
112+
113+
@[simp]
114+
lemma fourierInvₗ_apply (f : E) : fourierInvₗ R E F f = 𝓕⁻ f := rfl
115+
116+
@[simp]
117+
lemma fourierInv_zero : 𝓕⁻ (0 : E) = 0 :=
118+
(fourierInvₗ R E F).map_zero
119+
120+
end fourierInvₗ
121+
122+
end FourierTransform
123+
124+
end Module
125+
126+
section Pair
127+
128+
open FourierTransform
129+
130+
/-- A `FourierPair` is a pair of spaces `E` and `F` such that `𝓕⁻ ∘ 𝓕 = id` on `E`. -/
131+
class FourierPair (E F : Type*) [FourierTransform E F] [FourierTransformInv F E] where
132+
inv_fourier : ∀ (f : E), 𝓕⁻ (𝓕 f) = f
133+
134+
/-- A `FourierInvPair` is a pair of spaces `E` and `F` such that `𝓕 ∘ 𝓕⁻ = id` on `E`. -/
135+
class FourierInvPair (E F : Type*) [FourierTransform F E] [FourierTransformInv E F] where
136+
fourier_inv : ∀ (f : E), 𝓕 (𝓕⁻ f) = f
137+
138+
namespace FourierTransform
139+
140+
export FourierPair (inv_fourier)
141+
export FourierInvPair (fourier_inv)
142+
143+
attribute [simp] inv_fourier
144+
attribute [simp] fourier_inv
145+
146+
variable {R E F : Type*} [Semiring R] [AddCommMonoid E] [AddCommMonoid F] [Module R E] [Module R F]
147+
[FourierModule R E F] [FourierInvModule R F E] [FourierPair E F] [FourierInvPair F E]
148+
149+
variable (R E F) in
150+
/-- The Fourier transform as a linear equivalence. -/
151+
def fourierEquiv : E ≃ₗ[R] F where
152+
__ := fourierₗ R E F
153+
invFun := 𝓕⁻
154+
left_inv := inv_fourier
155+
right_inv := fourier_inv
156+
157+
@[simp]
158+
lemma fourierEquiv_apply (f : E) : fourierEquiv R E F f = 𝓕 f := rfl
159+
160+
@[simp]
161+
lemma fourierEquiv_symm_apply (f : F) : (fourierEquiv R E F).symm f = 𝓕⁻ f := rfl
162+
163+
end FourierTransform
164+
165+
end Pair

Mathlib/Analysis/Fourier/PoissonSummation.lean

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ open ContinuousMap
4848
`∑' n : ℤ, f (x + n)` is the value at `m` of the Fourier transform of `f`. -/
4949
theorem Real.fourierCoeff_tsum_comp_add {f : C(ℝ, ℂ)}
5050
(hf : ∀ K : Compacts ℝ, Summable fun n : ℤ => ‖(f.comp (ContinuousMap.addRight n)).restrict K‖)
51-
(m : ℤ) : fourierCoeff (Periodic.lift <| f.periodic_tsum_comp_add_zsmul 1) m = 𝓕 f m := by
51+
(m : ℤ) : fourierCoeff (Periodic.lift <| f.periodic_tsum_comp_add_zsmul 1) m =
52+
𝓕 (f : ℝ → ℂ) m := by
5253
-- NB: This proof can be shortened somewhat by telescoping together some of the steps in the calc
5354
-- block, but I think it's more legible this way. We start with preliminaries about the integrand.
5455
let e : C(ℝ, ℂ) := (fourier (-m)).comp ⟨((↑) : ℝ → UnitAddCircle), continuous_quotient_mk'⟩
@@ -87,7 +88,7 @@ theorem Real.fourierCoeff_tsum_comp_add {f : C(ℝ, ℂ)}
8788
simp_rw [eadd]
8889
exact funext fun n => neK ⟨Icc 0 1, isCompact_Icc⟩ _
8990
-- Minor tidying to finish
90-
_ = 𝓕 f m := by
91+
_ = 𝓕 (f : ℝ → ℂ) m := by
9192
rw [fourierIntegral_real_eq_integral_exp_smul]
9293
congr 1 with x : 1
9394
rw [smul_eq_mul, comp_apply, coe_mk, coe_mk, ContinuousMap.toFun_eq_coe, fourier_coe_apply]
@@ -99,8 +100,8 @@ theorem Real.fourierCoeff_tsum_comp_add {f : C(ℝ, ℂ)}
99100
theorem Real.tsum_eq_tsum_fourierIntegral {f : C(ℝ, ℂ)}
100101
(h_norm :
101102
∀ K : Compacts ℝ, Summable fun n : ℤ => ‖(f.comp <| ContinuousMap.addRight n).restrict K‖)
102-
(h_sum : Summable fun n : ℤ => 𝓕 f n) (x : ℝ) :
103-
∑' n : ℤ, f (x + n) = ∑' n : ℤ, 𝓕 f n * fourier n (x : UnitAddCircle) := by
103+
(h_sum : Summable fun n : ℤ => 𝓕 (f : ℝ → ℂ) n) (x : ℝ) :
104+
∑' n : ℤ, f (x + n) = ∑' n : ℤ, 𝓕 (f : ℝ → ℂ) n * fourier n (x : UnitAddCircle) := by
104105
let F : C(UnitAddCircle, ℂ) :=
105106
⟨(f.periodic_tsum_comp_add_zsmul 1).lift, continuous_coinduced_dom.mpr (map_continuous _)⟩
106107
have : Summable (fourierCoeff F) := by

Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ theorem _root_.fourierIntegral_gaussian_innerProductSpace' (hb : 0 < b.re) (x w
354354
ring
355355

356356
theorem _root_.fourierIntegral_gaussian_innerProductSpace (hb : 0 < b.re) (w : V) :
357-
𝓕 (fun v ↦ cexp (-b * ‖v‖ ^ 2)) w =
357+
𝓕 (fun (v : V) ↦ cexp (-b * ‖v‖ ^ 2)) w =
358358
(π / b) ^ (Module.finrank ℝ V / 2 : ℂ) * cexp (-π ^ 2 * ‖w‖ ^ 2 / b) := by
359359
simpa using fourierIntegral_gaussian_innerProductSpace' hb 0 w
360360

docs/overview.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ Analysis:
368368
Schwartz space: 'SchwartzMap'
369369

370370
Fourier analysis:
371-
Fourier transform as an integral: 'Real.fourierIntegral'
371+
Fourier transform as an integral: 'Real.fourierIntegral_eq'
372372
inversion formula: 'Continuous.fourier_inversion'
373373
Riemann-Lebesgue lemma: 'tendsto_integral_exp_inner_smul_cocompact'
374374
Parseval formula for Fourier series: 'tsum_sq_fourierCoeff'

docs/undergrad.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ Measures and integral calculus:
534534
Dirichlet theorem: ''
535535
Fejer theorem: ''
536536
Parseval theorem: 'tsum_sq_fourierCoeff'
537-
Fourier transform on $\mathrm{L}^1(\R^d)$: 'Real.fourierIntegral'
537+
Fourier transform on $\mathrm{L}^1(\R^d)$: 'Real.fourierIntegral_eq'
538538
Fourier transform on $\mathrm{L}^2(\R^d)$: ''
539539
Plancherel’s theorem: 'SchwartzMap.integral_inner_fourier_fourier'
540540
Fourier inversion formula: 'Continuous.fourier_inversion'

0 commit comments

Comments
 (0)