Analysis II (Tao, 2022) -- Chapter 05 -- Section 05

section Chap05section Section05

Helper for Theorem 5.5.1: the Fourier series of Unknown identifier `f`f viewed in has the expected coefficient formula and sums to Unknown identifier `toLp`toLp f.

lemma helperForTheorem_5_5_1_hasSum_fourier_series_toLp (f : C(AddCircle (1 : ), )) : HasSum (fun n : => (fourierCoeff f n) (fourierLp (T := (1 : )) (p := 2) n)) (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) := by have hsum := hasSum_fourier_series_L2 (T := (1 : )) (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) simp_rw [fourierCoeff_toLp (T := (1 : )) (f := f)] at hsum exact hsum

Helper for Theorem 5.5.1: symmetric integer windows [-sorry, sorry] : List [-Unknown identifier `N`N, Unknown identifier `N`N] tend to Unknown identifier `atTop`atTop in Finset : TypeFinset .

lemma helperForTheorem_5_5_1_tendsto_symmetricIntegerWindows : Filter.Tendsto (fun N : => Finset.Icc (-(N : )) (N : )) Filter.atTop Filter.atTop := by refine Filter.tendsto_atTop_finset_of_monotone ?_ ?_ · intro m n hmn exact Finset.Icc_subset_Icc (neg_le_neg (Int.ofNat_le.mpr hmn)) (Int.ofNat_le.mpr hmn) · intro z refine Int.natAbs z, Finset.mem_Icc.mpr ?_ constructor · have hz : -z (Int.natAbs z : ) := by simpa [Int.natAbs_neg] using (Int.le_natAbs (a := -z)) simpa using (neg_le_neg hz) · exact Int.le_natAbs

Helper for Theorem 5.5.1: symmetric Fourier partial sums converge to Unknown identifier `toLp`toLp f in .

lemma helperForTheorem_5_5_1_tendsto_partialSums_in_Lp (f : C(AddCircle (1 : ), )) : Filter.Tendsto (fun N : => Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourierLp (T := (1 : )) (p := 2) n))) Filter.atTop (nhds (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f)) := by have hsum : Filter.Tendsto (fun s : Finset => Finset.sum s (fun n => (fourierCoeff f n) (fourierLp (T := (1 : )) (p := 2) n))) Filter.atTop (nhds (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f)) := helperForTheorem_5_5_1_hasSum_fourier_series_toLp f exact hsum.comp helperForTheorem_5_5_1_tendsto_symmetricIntegerWindows

Helper for Theorem 5.5.1: the norm of the Fourier approximation error tends to 0 : 0.

lemma helperForTheorem_5_5_1_normError_tendsto_zero (f : C(AddCircle (1 : ), )) : Filter.Tendsto (fun N : => (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourierLp (T := (1 : )) (p := 2) n)))) Filter.atTop (nhds (0 : )) := by have hpartial := helperForTheorem_5_5_1_tendsto_partialSums_in_Lp f have hsub : Filter.Tendsto (fun N : => (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourierLp (T := (1 : )) (p := 2) n)))) Filter.atTop (nhds ((ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) - (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f))) := tendsto_const_nhds.sub hpartial have hnorm : Filter.Tendsto (fun N : => (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourierLp (T := (1 : )) (p := 2) n)))) Filter.atTop (nhds (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) - (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f)) := hsub.norm simpa using hnorm

Theorem 5.5.1 (Fourier theorem): for every , the symmetric Fourier partial sums converge to Unknown identifier `f`f in the metric, i.e. .

theorem fourier_series_tendsto_in_L2 (f : C(AddCircle (1 : ), )) : Filter.Tendsto (fun N : => (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourierLp (T := (1 : )) (p := 2) n)))) Filter.atTop (nhds (0 : )) := helperForTheorem_5_5_1_normError_tendsto_zero f

Helper for Theorem 5.5.3: absolute summability of Fourier coefficients implies summability of the coefficients themselves.

lemma helperForTheorem_5_5_3_summable_fourierCoeff (f : C(AddCircle (1 : ), )) (habs : Summable (fun n : => fourierCoeff f n)) : Summable (fun n : => fourierCoeff f n) := habs.of_norm

Helper for Theorem 5.5.3: summable Fourier coefficients force symmetric Fourier partial sums to converge to Unknown identifier `f`f in .

lemma helperForTheorem_5_5_3_tendsto_symmetricPartialSums (f : C(AddCircle (1 : ), )) (hcoeff : Summable (fun n : => fourierCoeff f n)) : Filter.Tendsto (fun N : => Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourier (T := (1 : )) n))) Filter.atTop (nhds f) := by have hsum : HasSum (fun n : => (fourierCoeff f n) (fourier (T := (1 : )) n)) f := hasSum_fourier_series_of_summable (T := (1 : )) (f := f) hcoeff have hsum_tendsto : Filter.Tendsto (fun s : Finset => Finset.sum s (fun n => (fourierCoeff f n) (fourier (T := (1 : )) n))) Filter.atTop (nhds f) := hsum exact hsum_tendsto.comp helperForTheorem_5_5_1_tendsto_symmetricIntegerWindows

Helper for Theorem 5.5.3: convergence of symmetric partial sums to Unknown identifier `f`f implies convergence of the sup-norm error to 0 : 0.

lemma helperForTheorem_5_5_3_normError_tendsto_zero (f : C(AddCircle (1 : ), )) (hpartial : Filter.Tendsto (fun N : => Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourier (T := (1 : )) n))) Filter.atTop (nhds f)) : Filter.Tendsto (fun N : => f - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourier (T := (1 : )) n)))) Filter.atTop (nhds (0 : )) := by have hsub : Filter.Tendsto (fun N : => f - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourier (T := (1 : )) n)))) Filter.atTop (nhds (f - f)) := tendsto_const_nhds.sub hpartial have hnorm : Filter.Tendsto (fun N : => f - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourier (T := (1 : )) n)))) Filter.atTop (nhds f - f) := hsub.norm simpa using hnorm

Theorem 5.5.3: let . If converges, then the symmetric Fourier partial sums converge uniformly to Unknown identifier `f`f, i.e. (with sorry : invalid occurrence of `·` notation, it must be surrounded by parentheses (e.g. `(· + 1)`)· the sup norm on ).

theorem fourier_series_tendsto_uniform_of_summable_fourierCoefficients (f : C(AddCircle (1 : ), )) (habs : Summable (fun n : => fourierCoeff f n)) : Filter.Tendsto (fun N : => f - (Finset.sum (Finset.Icc (-(N : )) (N : )) (fun n => (fourierCoeff f n) (fourier (T := (1 : )) n)))) Filter.atTop (nhds (0 : )) := by have hcoeff := helperForTheorem_5_5_3_summable_fourierCoeff f habs have hpartial := helperForTheorem_5_5_3_tendsto_symmetricPartialSums f hcoeff exact helperForTheorem_5_5_3_normError_tendsto_zero f hpartial

Helper for Theorem 5.5.4: Parseval's HasSum.{u_1, u_2} {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (f : β α) (a : α) (L : SummationFilter β := SummationFilter.unconditional β) : PropHasSum identity for Unknown identifier `toLp`toLp f, with Fourier coefficients rewritten in terms of the original continuous map Unknown identifier `f`f.

lemma helperForTheorem_5_5_4_hasSum_sq_fourierCoeff_toLp (f : C(AddCircle (1 : ), )) : HasSum (fun n : => fourierCoeff f n ^ 2) ( t : AddCircle (1 : ), (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) t ^ 2 AddCircle.haarAddCircle) := by have hsum := hasSum_sq_fourierCoeff (T := (1 : )) (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) simp_rw [fourierCoeff_toLp (T := (1 : )) (f := f)] at hsum exact hsum

Helper for Theorem 5.5.4: for Unknown identifier `toLp`toLp f, the square of the norm equals the integral of the pointwise squared norm.

lemma helperForTheorem_5_5_4_normSq_toLp_eq_integral_normSq (f : C(AddCircle (1 : ), )) : ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f ^ 2 = t : AddCircle (1 : ), (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) t ^ 2 AddCircle.haarAddCircle := by let g : MeasureTheory.Lp 2 AddCircle.haarAddCircle := ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f have hinner := congr_arg RCLike.re (@MeasureTheory.L2.inner_def (AddCircle (1 : )) _ _ _ _ _ g g) rw [ integral_re] at hinner · simpa [g] using (show g ^ 2 = t : AddCircle (1 : ), g t ^ 2 AddCircle.haarAddCircle from by simpa only [ norm_sq_eq_re_inner] using hinner) · exact MeasureTheory.L2.integrable_inner g g

Helper for Theorem 5.5.4: the Parseval tsum.{u_4, u_5} {α : Type u_4} {β : Type u_5} [AddCommMonoid α] [TopologicalSpace α] (f : β α) (L : SummationFilter β := SummationFilter.unconditional β) : αtsum identity for continuous maps on failed to synthesize AddCommGroup Hint: Additional diagnostic information may be available using the `set_option diagnostics true` command.AddCircle 1 : TypeAddCircle 1.

lemma helperForTheorem_5_5_4_tsum_sq_fourierCoeff_eq_normSq (f : C(AddCircle (1 : ), )) : (∑' n : , fourierCoeff f n ^ 2) = ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f ^ 2 := by have hsum := helperForTheorem_5_5_4_hasSum_sq_fourierCoeff_toLp f have hnorm := helperForTheorem_5_5_4_normSq_toLp_eq_integral_normSq f calc (∑' n : , fourierCoeff f n ^ 2) = t : AddCircle (1 : ), (ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f) t ^ 2 AddCircle.haarAddCircle := hsum.tsum_eq _ = ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f ^ 2 := by simpa using hnorm.symm

Helper for Theorem 5.5.4: summability of squared Fourier coefficients for continuous maps on failed to synthesize AddCommGroup Hint: Additional diagnostic information may be available using the `set_option diagnostics true` command.AddCircle 1 : TypeAddCircle 1.

lemma helperForTheorem_5_5_4_summable_sq_fourierCoeff (f : C(AddCircle (1 : ), )) : Summable (fun n : => fourierCoeff f n ^ 2) := (helperForTheorem_5_5_4_hasSum_sq_fourierCoeff_toLp f).summable

Theorem 5.5.4 (Plancherel / Parseval): for any , the series converges and the norm identity holds.

theorem continuousMap_norm_sq_eq_tsum_sq_fourierCoeff (f : C(AddCircle (1 : ), )) : Summable (fun n : => fourierCoeff f n ^ 2) ContinuousMap.toLp (E := ) 2 AddCircle.haarAddCircle f ^ 2 = ∑' n : , fourierCoeff f n ^ 2 := by constructor · exact helperForTheorem_5_5_4_summable_sq_fourierCoeff f · simpa using (helperForTheorem_5_5_4_tsum_sq_fourierCoeff_eq_normSq f).symm
end Section05end Chap05