Documentation

Frourio.Analysis.FourierPlancherelL2.FourierPlancherelL2Core1

Relate pairing with a Schwartz test function to the inner product.

theorem Frourio.ae_eq_of_memLp_schwartz_pairings {g₁ g₂ : } (hg₁ : MeasureTheory.MemLp g₁ 2 MeasureTheory.volume) (hg₂ : MeasureTheory.MemLp g₂ 2 MeasureTheory.volume) (h_pairings : ∀ (φ : SchwartzMap ), (x : ), g₁ x * (starRingEnd ) (φ.toFun x) = (x : ), g₂ x * (starRingEnd ) (φ.toFun x)) :

Two functions that have identical pairings with all Schwartz tests coincide almost everywhere.

theorem Frourio.integrable_tail_small {f : } (hf : MeasureTheory.Integrable f MeasureTheory.volume) (δ : ) :
δ > 0R > 0, (t : ) in {t : | R |t|}, f t < δ

Helper lemma: For integrable functions, the tail integral can be made arbitrarily small.

Hölder's inequality on a ball: L¹ norm bounded by L² norm times measure to the 1/2.

The Lebesgue measure of a ball in ℝ.

theorem Frourio.finite_uniform_tail_bound {ι : Type u_1} [Fintype ι] (g : ι) (hg : ∀ (i : ι), MeasureTheory.Integrable (g i) MeasureTheory.volume) (δ : ) ( : 0 < δ) :
R > 0, ∀ (i : ι), (t : ) in {t : | R |t|}, g i t < δ

For a finite collection of integrable functions and their tails, we can find a uniform radius R such that all tails are small.

Helper: bound tail of difference by triangle inequality.

theorem Frourio.fourierIntegral_tendsto_of_schwartz_approx {φ : SchwartzMap } {f : } (hf_L1 : MeasureTheory.Integrable f MeasureTheory.volume) (hφ_L1 : ∀ (n : ), MeasureTheory.Integrable (fun (t : ) => (φ n) t) MeasureTheory.volume) (hφ_tendsto_L1 : Filter.Tendsto (fun (n : ) => MeasureTheory.eLpNorm (fun (t : ) => f t - (φ n) t) 1 MeasureTheory.volume) Filter.atTop (nhds 0)) (ξ : ) :
Filter.Tendsto (fun (n : ) => fourierIntegral (fun (t : ) => (φ n) t) ξ) Filter.atTop (nhds (fourierIntegral f ξ))

If Schwartz functions φₙ approximate f in both L¹ and L², then their Fourier transforms converge pointwise to the Fourier transform of f. We require L¹ convergence explicitly, since L² convergence alone is insufficient.

theorem Frourio.fourierIntegral_L2_convergence_of_schwartz_approx {φ : SchwartzMap } {f : } (_hf_L1 : MeasureTheory.Integrable f MeasureTheory.volume) (hf_L2 : MeasureTheory.MemLp f 2 MeasureTheory.volume) (hφ_L1 : ∀ (n : ), MeasureTheory.Integrable (fun (t : ) => (φ n) t) MeasureTheory.volume) (hφ_L2 : ∀ (n : ), MeasureTheory.MemLp (fun (t : ) => (φ n) t) 2 MeasureTheory.volume) (hφ_tendsto : Filter.Tendsto (fun (n : ) => MeasureTheory.eLpNorm (fun (t : ) => f t - (φ n) t) 2 MeasureTheory.volume) Filter.atTop (nhds 0)) :
∃ (ψLp : (MeasureTheory.Lp 2 MeasureTheory.volume)) (ψ_lim : (MeasureTheory.Lp 2 MeasureTheory.volume)), (∀ (n : ), ψLp n = MeasureTheory.MemLp.toLp (fun (ξ : ) => fourierIntegral (fun (t : ) => (φ n) t) ξ) ) Filter.Tendsto ψLp Filter.atTop (nhds ψ_lim)

If Schwartz functions φₙ approximate f in L², then their Fourier transforms form a Cauchy sequence in L², which converges strongly to some limit in L².

theorem Frourio.fourierIntegral_memLp_limit {φ : SchwartzMap } {f : } (hf_L1 : MeasureTheory.Integrable f MeasureTheory.volume) (hf_L2 : MeasureTheory.MemLp f 2 MeasureTheory.volume) (hφ_L1 : ∀ (n : ), MeasureTheory.Integrable (fun (t : ) => (φ n) t) MeasureTheory.volume) (hφ_L2 : ∀ (n : ), MeasureTheory.MemLp (fun (t : ) => (φ n) t) 2 MeasureTheory.volume) (hφ_tendsto : Filter.Tendsto (fun (n : ) => MeasureTheory.eLpNorm (fun (t : ) => f t - (φ n) t) 2 MeasureTheory.volume) Filter.atTop (nhds 0)) :
∃ (ψLp : (MeasureTheory.Lp 2 MeasureTheory.volume)) (ψ_lim : (MeasureTheory.Lp 2 MeasureTheory.volume)), (∀ (n : ), ψLp n = MeasureTheory.MemLp.toLp (fun (ξ : ) => fourierIntegral (fun (t : ) => (φ n) t) ξ) ) Filter.Tendsto ψLp Filter.atTop (nhds ψ_lim)

When a function f is approximated in by Schwartz functions, the corresponding Fourier transforms form a Cauchy sequence in and hence converge to some limit in . We package this convergence datum.

theorem Frourio.fourierIntegral_memLp_of_memLp (f : ) (hf_L1 : MeasureTheory.Integrable f MeasureTheory.volume) (hf_L2 : MeasureTheory.MemLp f 2 MeasureTheory.volume) :
∃ (φ : SchwartzMap ) (_ : ∀ (n : ), MeasureTheory.Integrable (fun (t : ) => (φ n) t) MeasureTheory.volume) (_ : ∀ (n : ), MeasureTheory.MemLp (fun (t : ) => (φ n) t) 2 MeasureTheory.volume) (ψLp : (MeasureTheory.Lp 2 MeasureTheory.volume)) (ψ_lim : (MeasureTheory.Lp 2 MeasureTheory.volume)), (∀ (n : ), ψLp n = MeasureTheory.MemLp.toLp (fun (ξ : ) => fourierIntegral (fun (t : ) => (φ n) t) ξ) ) Filter.Tendsto ψLp Filter.atTop (nhds ψ_lim)

For an function, the square of its norm is integrable.

theorem Frourio.memLp_two_tail_norm_sq_small {f : } (hf : MeasureTheory.MemLp f 2 MeasureTheory.volume) (δ : ) :
δ > 0R > 0, (t : ) in {t : | R |t|}, f t ^ 2 < δ

The tail of an function has small squared norm.

Truncating an integrable function to a ball preserves integrability.

theorem Frourio.tsupport_indicator_subset_ball {f : } {R : } :
(tsupport fun (t : ) => {t : | |t| R}.indicator f t) Metric.closedBall 0 R

The support of a ball-truncated function is contained in that ball.

theorem Frourio.sub_indicator_ball_eq_indicator_compl (f : ) (R : ) :
(fun (t : ) => f t - {t : | |t| R}.indicator f t) = fun (t : ) => {t : | |t| R}.indicator f t

Removing the ball of radius R from f corresponds to restricting f to the complement.

theorem Frourio.integrable_memLp_tail_small {f : } (hf_L1 : MeasureTheory.Integrable f MeasureTheory.volume) (hf_L2 : MeasureTheory.MemLp f 2 MeasureTheory.volume) (δ : ) :
δ > 0R > 0, (t : ) in {t : | R |t|}, f t < δ (t : ) in {t : | R |t|}, f t ^ 2 < δ

Small L¹ and L² tails for integrable and functions.

Control the L¹ error after truncating a function outside a ball using the tail integral.

theorem Frourio.eLpNorm_two_tail_indicator_sub {f : } (hf_L2 : MeasureTheory.MemLp f 2 MeasureTheory.volume) {R δ : } ( : 0 < δ) (h_tail : (t : ) in {t : | R |t|}, f t ^ 2 < δ ^ 2) :

Control the L² error after truncating a function outside a ball using the squared tail integral.

L¹/L² control on the difference between f and its ball truncation.

theorem Frourio.smooth_compact_support_to_schwartz_L1_L2 {g : } (hg_compact : HasCompactSupport g) (hg_smooth : ContDiff (↑) g) (ε : ) ( : 0 < ε) :

Upgrade a smooth compactly supported approximation to a Schwartz approximation in L¹ and L².