# Fourier analysis on the additive circle #

This file contains basic results on Fourier series for functions on the additive circle AddCircle T = ℝ / ℤ • T.

## Main definitions #

• haarAddCircle, Haar measure on AddCircle T, normalized to have total measure 1. (Note that this is not the same normalisation as the standard measure defined in Integral.Periodic, so we do not declare it as a MeasureSpace instance, to avoid confusion.)
• for n : ℤ, fourier n is the monomial fun x => exp (2 π i n x / T), bundled as a continuous map from AddCircle T to ℂ.
• fourierBasis is the Hilbert basis of Lp ℂ 2 haarAddCircle given by the images of the monomials fourier n.
• fourierCoeff f n, for f : AddCircle T → E (with E a complete normed ℂ-vector space), is the n-th Fourier coefficient of f, defined as an integral over AddCircle T. The lemma fourierCoeff_eq_intervalIntegral expresses this as an integral over [a, a + T] for any real a.
• fourierCoeffOn, for f : ℝ → E and a < b reals, is the n-th Fourier coefficient of the unique periodic function of period b - a which agrees with f on (a, b]. The lemma fourierCoeffOn_eq_integral expresses this as an integral over [a, b].

## Main statements #

The theorem span_fourier_closure_eq_top states that the span of the monomials fourier n is dense in C(AddCircle T, ℂ), i.e. that its Submodule.topologicalClosure is ⊤. This follows from the Stone-Weierstrass theorem after checking that the span is a subalgebra, is closed under conjugation, and separates points.

Using this and general theory on approximation of Lᵖ functions by continuous functions, we deduce (span_fourierLp_closure_eq_top) that for any 1 ≤ p < ∞, the span of the Fourier monomials is dense in the Lᵖ space of AddCircle T. For p = 2 we show (orthonormal_fourier) that the monomials are also orthonormal, so they form a Hilbert basis for L², which is named as fourierBasis; in particular, for L² functions f, the Fourier series of f converges to f in the L² topology (hasSum_fourier_series_L2). Parseval's identity, tsum_sq_fourierCoeff, is a direct consequence.

For continuous maps f : AddCircle T → ℂ, the theorem hasSum_fourier_series_of_summable states that if the sequence of Fourier coefficients of f is summable, then the Fourier series ∑ (i : ℤ), fourierCoeff f i * fourier i converges to f in the uniform-convergence topology of C(AddCircle T, ℂ).

### Measure on AddCircle T#

In this file we use the Haar measure on AddCircle T normalised to have total measure 1 (which is not the same as the standard measure defined in Topology.Instances.AddCircle).

def AddCircle.haarAddCircle {T : } [hT : Fact (0 < T)] :

Haar measure on the additive circle, normalised to have total measure 1.

Equations
Instances For
Equations
• =
Equations
• =
theorem AddCircle.volume_eq_smul_haarAddCircle {T : } [hT : Fact (0 < T)] :
def fourier {T : } (n : ) :

The family of exponential monomials fun x => exp (2 π i n x / T), parametrized by n : ℤ and considered as bundled continuous maps from ℝ / ℤ • T to ℂ.

Equations
• = { toFun := fun (x : ) => (n x).toCircle, continuous_toFun := }
Instances For
@[simp]
theorem fourier_apply {T : } {n : } {x : } :
() x = (n x).toCircle
theorem fourier_coe_apply {T : } {n : } {x : } :
() x = Complex.exp ( * n * x / T)
@[simp]
theorem fourier_coe_apply' {T : } {n : } {x : } :
(AddCircle.toCircle (n x)) = Complex.exp ( * n * x / T)
theorem fourier_zero {T : } {x : } :
() x = 1
@[simp]
theorem fourier_zero' {T : } {x : } :
= 1
theorem fourier_eval_zero {T : } (n : ) :
() 0 = 1
theorem fourier_one {T : } {x : } :
() x = x.toCircle
theorem fourier_neg {T : } {n : } {x : } :
(fourier (-n)) x = () (() x)
@[simp]
theorem fourier_neg' {T : } {n : } {x : } :
(-(n x)).toCircle = () (() x)
theorem fourier_add {T : } {m : } {n : } {x : } :
(fourier (m + n)) x = () x * () x
@[simp]
theorem fourier_add' {T : } {m : } {n : } {x : } :
((m + n) x).toCircle = () x * () x
theorem fourier_norm {T : } [Fact (0 < T)] (n : ) :
= 1
theorem fourier_add_half_inv_index {T : } {n : } (hn : n 0) (hT : 0 < T) (x : ) :
() (x + (T / 2 / n)) = -() x

For n ≠ 0, a translation by T / 2 / n negates the function fourier n.

The star subalgebra of C(AddCircle T, ℂ) generated by fourier n for n ∈ ℤ .

Equations
Instances For
theorem fourierSubalgebra_coe {T : } :
Subalgebra.toSubmodule fourierSubalgebra.toSubalgebra = Submodule.span (Set.range fourier)

The star subalgebra of C(AddCircle T, ℂ) generated by fourier n for n ∈ ℤ is in fact the linear span of these functions.

theorem fourierSubalgebra_separatesPoints {T : } [hT : Fact (0 < T)] :
fourierSubalgebra.SeparatesPoints

The subalgebra of C(AddCircle T, ℂ) generated by fourier n for n ∈ ℤ separates points.

theorem fourierSubalgebra_closure_eq_top {T : } [hT : Fact (0 < T)] :
fourierSubalgebra.topologicalClosure =

The subalgebra of C(AddCircle T, ℂ) generated by fourier n for n ∈ ℤ is dense.

theorem span_fourier_closure_eq_top {T : } [hT : Fact (0 < T)] :
(Submodule.span (Set.range fourier)).topologicalClosure =

The linear span of the monomials fourier n is dense in C(AddCircle T, ℂ).

@[reducible, inline]
abbrev fourierLp {T : } [hT : Fact (0 < T)] (p : ENNReal) [Fact (1 p)] (n : ) :

The family of monomials fourier n, parametrized by n : ℤ and considered as elements of the Lp space of functions AddCircle T → ℂ.

Equations
Instances For
theorem coeFn_fourierLp {T : } [hT : Fact (0 < T)] (p : ENNReal) [Fact (1 p)] (n : ) :
theorem span_fourierLp_closure_eq_top {T : } [hT : Fact (0 < T)] {p : ENNReal} [Fact (1 p)] (hp : p ) :
().topologicalClosure =

For each 1 ≤ p < ∞, the linear span of the monomials fourier n is dense in Lp ℂ p haarAddCircle.

theorem orthonormal_fourier {T : } [hT : Fact (0 < T)] :

The monomials fourier n are an orthonormal set with respect to normalised Haar measure.

def fourierCoeff {T : } [hT : Fact (0 < T)] {E : Type} [] (f : E) (n : ) :
E

The n-th Fourier coefficient of a function AddCircle T → E, for E a complete normed ℂ-vector space, defined as the integral over AddCircle T of fourier (-n) t • f t.

Equations
Instances For
theorem fourierCoeff_eq_intervalIntegral {T : } [hT : Fact (0 < T)] {E : Type} [] (f : E) (n : ) (a : ) :
= (1 / T) ∫ (x : ) in a..a + T, (fourier (-n)) x f x

The Fourier coefficients of a function on AddCircle T can be computed as an integral over [a, a + T], for any real a.

theorem fourierCoeff.const_smul {T : } [hT : Fact (0 < T)] {E : Type} [] (f : E) (c : ) (n : ) :
fourierCoeff (c f) n = c
theorem fourierCoeff.const_mul {T : } [hT : Fact (0 < T)] (f : ) (c : ) (n : ) :
fourierCoeff (fun (x : ) => c * f x) n = c *
def fourierCoeffOn {E : Type} [] {a : } {b : } (hab : a < b) (f : E) (n : ) :
E

For a function on ℝ, the Fourier coefficients of f on [a, b] are defined as the Fourier coefficients of the unique periodic function agreeing with f on Ioc a b.

Equations
Instances For
theorem fourierCoeffOn_eq_integral {E : Type} [] {a : } {b : } (f : E) (n : ) (hab : a < b) :
fourierCoeffOn hab f n = (1 / (b - a)) ∫ (x : ) in a..b, (fourier (-n)) x f x
theorem fourierCoeffOn.const_smul {E : Type} [] {a : } {b : } (f : E) (c : ) (n : ) (hab : a < b) :
fourierCoeffOn hab (c f) n = c fourierCoeffOn hab f n
theorem fourierCoeffOn.const_mul {a : } {b : } (f : ) (c : ) (n : ) (hab : a < b) :
fourierCoeffOn hab (fun (x : ) => c * f x) n = c * fourierCoeffOn hab f n
theorem fourierCoeff_liftIoc_eq {T : } [hT : Fact (0 < T)] {a : } (f : ) (n : ) :
theorem fourierCoeff_liftIco_eq {T : } [hT : Fact (0 < T)] {a : } (f : ) (n : ) :
def fourierBasis {T : } [hT : Fact (0 < T)] :

We define fourierBasis to be a ℤ-indexed Hilbert basis for Lp ℂ 2 haarAddCircle, which by definition is an isometric isomorphism from Lp ℂ 2 haarAddCircle to ℓ²(ℤ, ℂ).

Equations
• fourierBasis =
Instances For
@[simp]
theorem coe_fourierBasis {T : } [hT : Fact (0 < T)] :
(fun (i : ) => fourierBasis.repr.symm (lp.single 2 i 1)) =

The elements of the Hilbert basis fourierBasis are the functions fourierLp 2, i.e. the monomials fourier n on the circle considered as elements of L².

theorem fourierBasis_repr {T : } [hT : Fact (0 < T)] (f : (MeasureTheory.Lp 2 AddCircle.haarAddCircle)) (i : ) :
(fourierBasis.repr f) i = fourierCoeff (f) i

Under the isometric isomorphism fourierBasis from Lp ℂ 2 haarAddCircle to ℓ²(ℤ, ℂ), the i-th coefficient is fourierCoeff f i, i.e., the integral over AddCircle T of fun t => fourier (-i) t * f t with respect to the Haar measure of total mass 1.

theorem hasSum_fourier_series_L2 {T : } [hT : Fact (0 < T)] (f : (MeasureTheory.Lp 2 AddCircle.haarAddCircle)) :
HasSum (fun (i : ) => fourierCoeff (f) i ) f

The Fourier series of an L2 function f sums to f, in the L² space of AddCircle T.

theorem tsum_sq_fourierCoeff {T : } [hT : Fact (0 < T)] (f : (MeasureTheory.Lp 2 AddCircle.haarAddCircle)) :
∑' (i : ), fourierCoeff (f) i ^ 2 = ∫ (t : ), f t ^ 2AddCircle.haarAddCircle

Parseval's identity: for an L² function f on AddCircle T, the sum of the squared norms of the Fourier coefficients equals the L² norm of f.

theorem fourierCoeff_toLp {T : } [hT : Fact (0 < T)] (f : ) (n : ) :
theorem hasSum_fourier_series_of_summable {T : } [hT : Fact (0 < T)] {f : } (h : Summable ()) :
HasSum (fun (i : ) => fourierCoeff (f) i ) f

If the sequence of Fourier coefficients of f is summable, then the Fourier series converges uniformly to f.

theorem has_pointwise_sum_fourier_series_of_summable {T : } [hT : Fact (0 < T)] {f : } (h : Summable ()) (x : ) :
HasSum (fun (i : ) => fourierCoeff (f) i () x) (f x)

If the sequence of Fourier coefficients of f is summable, then the Fourier series of f converges everywhere pointwise to f.

theorem hasDerivAt_fourier (T : ) (n : ) (x : ) :
HasDerivAt (fun (y : ) => () y) ( * n / T * () x) x
theorem hasDerivAt_fourier_neg (T : ) (n : ) (x : ) :
HasDerivAt (fun (y : ) => (fourier (-n)) y) (-2 * * Complex.I * n / T * (fourier (-n)) x) x
theorem has_antideriv_at_fourier_neg {T : } (hT : Fact (0 < T)) {n : } (hn : n 0) (x : ) :
HasDerivAt (fun (y : ) => T / (-2 * * Complex.I * n) * (fourier (-n)) y) ((fourier (-n)) x) x
theorem fourierCoeffOn_of_hasDeriv_right {a : } {b : } (hab : a < b) {f : } {f' : } {n : } (hn : n 0) (hf : ContinuousOn f (Set.uIcc a b)) (hff' : xSet.Ioo (min a b) (max a b), HasDerivWithinAt f (f' x) () x) (hf' : IntervalIntegrable f' MeasureTheory.volume a b) :
fourierCoeffOn hab f n = 1 / (-2 * * Complex.I * n) * ((fourier (-n)) a * (f b - f a) - (b - a) * fourierCoeffOn hab f' n)

Express Fourier coefficients of f on an interval in terms of those of its derivative.

theorem fourierCoeffOn_of_hasDerivAt_Ioo {a : } {b : } (hab : a < b) {f : } {f' : } {n : } (hn : n 0) (hf : ContinuousOn f (Set.uIcc a b)) (hff' : xSet.Ioo (min a b) (max a b), HasDerivAt f (f' x) x) (hf' : IntervalIntegrable f' MeasureTheory.volume a b) :
fourierCoeffOn hab f n = 1 / (-2 * * Complex.I * n) * ((fourier (-n)) a * (f b - f a) - (b - a) * fourierCoeffOn hab f' n)

Express Fourier coefficients of f on an interval in terms of those of its derivative.

theorem fourierCoeffOn_of_hasDerivAt {a : } {b : } (hab : a < b) {f : } {f' : } {n : } (hn : n 0) (hf : xSet.uIcc a b, HasDerivAt f (f' x) x) (hf' : IntervalIntegrable f' MeasureTheory.volume a b) :
fourierCoeffOn hab f n = 1 / (-2 * * Complex.I * n) * ((fourier (-n)) a * (f b - f a) - (b - a) * fourierCoeffOn hab f' n)

Express Fourier coefficients of f on an interval in terms of those of its derivative.