Mathlib.Analysis.Fourier

Two groups of results.

Basic 3 core · 3 supporting Reusable real-line energies with Lebesgue measure. ★ weightedEnergy_two

Weighted inverse-Fourier energies

Reusable real-line energies with Lebesgue measure. The Fourier convention used by the other modules is Mathlib's 𝓕⁻ G(v) = ∫ ξ, exp(2π i ξv) G(ξ), so its unweighted Plancherel constant is one and its quadratic moment constant is (2π)⁻².

def energy reviewed
Causalean.Mathlib.Analysis.Fourier

The ordinary squared L² energy of a complex-valued function on the real line is the Lebesgue integral of its squared modulus.

Definition (Lean source)
g :
ℝ → ℂ
energy g :
ℝ
∫ v, ‖g v‖ ^ 2
Causalean.Mathlib.Analysis.Fourier.energy · Causalean/Mathlib/Analysis/Fourier/Basic.lean:19
def weightedEnergy reviewed
Causalean.Mathlib.Analysis.Fourier

The weighted squared L² energy for a moment exponent and a complex-valued function on the real line is the Lebesgue integral weighted by the κ-th power of distance from zero.

Definition (Lean source)
κ :
ℝ
g :
ℝ → ℂ
weightedEnergy κ g :
ℝ
∫ v, |v| ^ κ * ‖g v‖ ^ 2
Causalean.Mathlib.Analysis.Fourier.weightedEnergy · Causalean/Mathlib/Analysis/Fourier/Basic.lean:22
theorem weightedEnergy_two reviewed
Causalean.Mathlib.Analysis.Fourier

A complex-valued function on the real line has weighted energy at exponent two equal to its squared-distance weighted integral.

Formal statement
g :
ℝ → ℂ
weightedEnergy 2 g = ∫ v, v ^ 2 * ‖g v‖ ^ 2
Proof (Lean source)
theorem weightedEnergy_two (g : ℝ → ℂ) : weightedEnergy 2 g = ∫ v, v ^ 2 * ‖g v‖ ^ 2 := by simp [weightedEnergy, sq_abs]
Causalean.Mathlib.Analysis.Fourier.weightedEnergy_two · Causalean/Mathlib/Analysis/Fourier/Basic.lean:37 · uses weightedEnergy
3 supporting declarations (lemmas, instances)
Angular­Fourier 15 core · 26 supporting This module defines the unitary angular-frequency Fourier integral on finite-dimensional real Euclidean space and proves its compatibility with Mathlib's L² transform. ★ angular_plancherel

Finite-dimensional angular Fourier transforms

This module defines the unitary angular-frequency Fourier integral on finite-dimensional real Euclidean space and proves its compatibility with Mathlib's L² transform. It records the exact dilation normalization, Euclidean-coordinate volume identities, and Plancherel without any compact-support or derivative assumption.

abbrev Space reviewed
Causalean.Mathlib.Analysis.Fourier

The Euclidean space with dimension and its canonical coordinates.

Definition (Lean source)
p :
ℕ
Space p :
Type
Causalean.Mathlib.Analysis.Fourier.Space · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:26
def angularPrefactor reviewed
Causalean.Mathlib.Analysis.Fourier

The angular unitary prefactor in dimension is the negative half-dimensional power of two pi.

Definition (Lean source)
p :
ℕ
angularPrefactor p :
ℝ
(2 * pi) ^ (-(p : ℝ) / 2)
Causalean.Mathlib.Analysis.Fourier.angularPrefactor · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:29
def angularFourier reviewed
Causalean.Mathlib.Analysis.Fourier

The angular Fourier transform of a complex spatial function at a frequency is (2π)^(−p/2) times the integral over u of exp(−i·⟨w, u⟩)·G(u), where p is the dimension and ⟨w, u⟩ is the sum of coordinate products.

Definition (Lean source)
p :
ℕ
G :
Space p → ℂ
w :
angularFourier G w :
ℂ
angularPrefactor p • ∫ u, exp (-I * ((∑ r, w r * u r : ℝ) : ℂ)) * G u
Causalean.Mathlib.Analysis.Fourier.angularFourier · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:33 · uses Space
def coordinateVector reviewed
Causalean.Mathlib.Analysis.Fourier

The canonical coordinate vector for coordinate has value one in that coordinate and zero in the others.

Definition (Lean source)
p :
ℕ
r :
Fin p
coordinateVector r :
toLp 2 (single r 1)
Causalean.Mathlib.Analysis.Fourier.coordinateVector · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:40 · uses Space
def coordinateDerivative reviewed
Causalean.Mathlib.Analysis.Fourier

The coordinate derivative of a scalar test function in a coordinate at a point is its real Fréchet derivative evaluated on the canonical coordinate vector.

Definition (Lean source)
p :
ℕ
φ :
Space p → ℂ
r :
Fin p
x :
coordinateDerivative φ r x :
ℂ
Causalean.Mathlib.Analysis.Fourier.coordinateDerivative · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:45 · uses Space
def HasWeakCoordinateDerivative reviewed
Causalean.Mathlib.Analysis.Fourier

Spatial weak differentiation of a function by a proposed derivative in one coordinate means integration by parts against every smooth compactly supported complex scalar test.

Definition (Lean source)
p :
ℕ
G D :
Space p → ℂ
r :
Fin p
φ :
Space p → ℂ
ContDiff ℝ ∞ φ
HasWeakCoordinateDerivative G D r :
Prop
(∫ x, G x * coordinateDerivative φ r x) = -(∫ x, D x * φ x)
Causalean.Mathlib.Analysis.Fourier.HasWeakCoordinateDerivative · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:51 · uses Space
def updateCoordinate reviewed
Causalean.Mathlib.Analysis.Fourier

The coordinate update of a point changes one coordinate to a real value.

Definition (Lean source)
p :
ℕ
x :
r :
Fin p
t :
ℝ
updateCoordinate x r t :
toLp 2 (update (fun s => x s) r t)
Causalean.Mathlib.Analysis.Fourier.updateCoordinate · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:58 · uses Space
abbrev RemainingCoordinates reviewed
Causalean.Mathlib.Analysis.Fourier

The remaining-coordinate space omits one coordinate from a finite product.

Definition (Lean source)
p :
ℕ
r :
Fin p
RemainingCoordinates r :
Type
{s : Fin p // s ≠ r} → ℝ
Causalean.Mathlib.Analysis.Fourier.RemainingCoordinates · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:63
def insertCoordinate reviewed
Causalean.Mathlib.Analysis.Fourier

Coordinate insertion combines the omitted coordinate, the remaining values, and one real value into a Euclidean point.

Definition (Lean source)
p :
ℕ
r :
Fin p
t :
ℝ
insertCoordinate r z t :
toLp 2 (fun s => if h : s = r then t else z ⟨s, h⟩)
Causalean.Mathlib.Analysis.Fourier.insertCoordinate · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:66 · uses RemainingCoordinates , Space
def HasRealSliceIBP reviewed
Causalean.Mathlib.Analysis.Fourier

Real slice integration by parts for a real function G and a family D of proposed coordinate derivatives means: for every coordinate r, every base point x, and every real function v that is differentiable everywhere with continuous derivative v′, the integral over real t of G(x with coordinate r set to t)·v′(t) equals minus the integral over t of D_r(x with coordinate r set to t)·v(t). The identity is required on every coordinate line (not only almost every one) and for every such test function, with no support or decay condition on v; integrals of non-integrable functions are read as zero.

Definition (Lean source)
p :
ℕ
G :
Space p → ℝ
D :
Fin p → Space p → ℝ
r :
Fin p
x :
v v' :
ℝ → ℝ
(∀ t, HasDerivAt v (v' t) t)
HasRealSliceIBP G D :
Prop
(∫ t : ℝ, G (updateCoordinate x r t) * v' t)
= -(∫ t : ℝ, D r (updateCoordinate x r t) * v t)
Causalean.Mathlib.Analysis.Fourier.HasRealSliceIBP · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:71 · uses Space
def complexify reviewed
Causalean.Mathlib.Analysis.Fourier

The complexification of a real spatial function is its pointwise inclusion into the complex numbers.

Definition (Lean source)
p :
ℕ
G :
Space p → ℝ
complexify G :
Space p → ℂ
fun x => (G x : ℂ)
Causalean.Mathlib.Analysis.Fourier.complexify · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:84 · uses Space
def l2Energy reviewed
Causalean.Mathlib.Analysis.Fourier

The squared spatial energy of a function is the nonnegative Lebesgue integral of its squared norm.

Definition (Lean source)
p :
ℕ
F :
G :
Space p → F
l2Energy G :
ℝ≥0∞
∫⁻ x, ofReal (‖G x‖ ^ 2)
Causalean.Mathlib.Analysis.Fourier.l2Energy · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:88 · uses Space
def zeroEnergy reviewed
Causalean.Mathlib.Analysis.Fourier

The zero-order angular energy of a function is the squared energy of its normalized angular Fourier integral.

Definition (Lean source)
p :
ℕ
G :
Space p → ℂ
zeroEnergy G :
ℝ≥0∞
Causalean.Mathlib.Analysis.Fourier.zeroEnergy · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:93 · uses Space
def firstEnergy reviewed
Causalean.Mathlib.Analysis.Fourier

The first-order angular energy of a function weights its squared angular Fourier integral by one plus squared frequency divided by the dimension.

Definition (Lean source)
p :
ℕ
G :
Space p → ℂ
firstEnergy G :
ℝ≥0∞
∫⁻ w, ofReal (‖angularFourier G w‖ ^ 2 * (1 + ‖w‖ ^ 2 / (p : ℝ)))
Causalean.Mathlib.Analysis.Fourier.firstEnergy · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:97 · uses Space
theorem angular_plancherel reviewed
Causalean.Mathlib.Analysis.Fourier

An integrable and square-integrable spatial function has equal angular Fourier and spatial squared energies.

Formal statement
p :
ℕ
shared
G :
Space p → ℂ
hG1 :
hG2 :
Proof (Lean source)
theorem angular_plancherel (G : Space p → ℂ) (hG1 : Integrable G volume) (hG2 : MemLp G 2 volume) : zeroEnergy G = l2Energy G := by have hn := l2Energy_normalized_dilation (p := p) (𝓕 G) calc zeroEnergy G = l2Energy (fun w : Space p => angularPrefactor p • (𝓕 G) ((2 * pi)⁻¹ • w)) := by unfold zeroEnergy congr 1 exact funext (angularFourier_eq_mathlib G) _ = l2Energy (𝓕 G) := hn _ = l2Energy G := mathlib_integral_plancherel G hG1 hG2
Causalean.Mathlib.Analysis.Fourier.angular_plancherel · Causalean/Mathlib/Analysis/Fourier/AngularFourier.lean:394 · uses Space , l2Energy , zeroEnergy
26 supporting declarations (lemmas, instances)
Fourier­Endpoints 2 core · 2 supporting This module works with ordinary integral transforms, including compact C¹ multipliers that are not Schwartz functions (the sixth box convolution has only finite smoothness). ★ inverse_energy_endpoints

Plancherel and the quadratic inverse-Fourier energy

This module works with ordinary integral transforms, including compact C¹ multipliers that are not Schwartz functions (the sixth box convolution has only finite smoothness). The caller may supply absolute integrability of the inverse transforms of G and G'. These are standard inversion hypotheses, not assumptions of either weighted inequality.

Primary Mathlib sources checked in round 1: * FourierTransform.lean: VectorFourier.integral_sesq_fourierIntegral_eq_neg_flip; * Inversion.lean: Continuous.fourier_fourierInv_eq; * FourierTransformDeriv.lean: Real.fourier_deriv. Upstream source: https://github.com/leanprover-community/mathlib4/tree/master/Mathlib/Analysis/Fourier

structure CompactInverseData reviewed
Causalean.Mathlib.Analysis.Fourier

Admissible compact inverse-Fourier data for a complex frequency multiplier consist of one continuous frequency derivative, compact spectral support, an integrable inverse transform, and an integrable inverse transform of its derivative.

Definition (Lean source)
G :
ℝ → ℂ
regularity :
ContDiff ℝ 1 G
compactSupport :
integrable_inverse :
Integrable (𝓕⁻ G)
integrable_inverse_deriv :
Integrable (𝓕⁻ (deriv G))
Causalean.Mathlib.Analysis.Fourier.CompactInverseData · Causalean/Mathlib/Analysis/Fourier/FourierEndpoints.lean:29
theorem inverse_energy_endpoints reviewed
Causalean.Mathlib.Analysis.Fourier

For a complex frequency multiplier G with admissible compact inverse-Fourier data, writing g for its inverse Fourier transform, |g|² and v²·|g(v)|² are integrable, the integral of |g|² equals the integral of |G|², and the integral of v²·|g(v)|² equals (2π)⁻² times the integral of |G′|².

Formal statement
G :
ℝ → ℂ
conclusion 1
Integrable (fun v => ‖𝓕⁻ G v‖ ^ 2)
conclusion 2
Integrable (fun v => v ^ 2 * ‖𝓕⁻ G v‖ ^ 2)
conclusion 3
energy (𝓕⁻ G) = energy G
conclusion 4
weightedEnergy 2 (𝓕⁻ G) = (2 * pi)⁻¹ ^ 2 * energy (deriv G)
Proof (Lean source)
theorem inverse_energy_endpoints (G : ℝ → ℂ) (hG : CompactInverseData G) : Integrable (fun v => ‖𝓕⁻ G v‖ ^ 2) ∧ Integrable (fun v => v ^ 2 * ‖𝓕⁻ G v‖ ^ 2) ∧ energy (𝓕⁻ G) = energy G ∧ weightedEnergy 2 (𝓕⁻ G) = (2 * pi)⁻¹ ^ 2 * energy (deriv G) := by have hc := hG.regularity.continuous have hdc := hG.regularity.continuous_deriv (by simp) have hi : Integrable G := hc.integrable_of_hasCompactSupport hG.compactSupport have hdi : Integrable (deriv G) := hdc.integrable_of_hasCompactSupport hG.compactSupport.deriv have hd := hG.regularity.differentiable (by simp) obtain ⟨_, hs, he⟩ := inverse_plancherel G hc hi hG.integrable_inverse obtain ⟨_, hds, hde⟩ := inverse_plancherel (deriv G) hdc hdi hG.integrable_inverse_deriv have hpi : (2 * pi) ≠ 0 := ne_of_gt (by positivity) have hmoment (v : ℝ) : v ^ 2 * ‖𝓕⁻ G v‖ ^ 2 = (2 * pi)⁻¹ ^ 2 * ‖𝓕⁻ (deriv G) v‖ ^ 2 := by rw [inverse_deriv_eq G hi hd hdi] simp only [norm_mul, norm_neg, Complex.norm_ofNat, Complex.norm_real, Real.norm_eq_abs, abs_of_pos Real.pi_pos, Complex.norm_I, mul_one] rw [mul_pow, mul_pow, mul_pow, sq_abs] field_simp have hm : Integrable (fun v => v ^ 2 * ‖𝓕⁻ G v‖ ^ 2) := by simp_rw [hmoment] exact hds.const_mul _ refine ⟨hs, hm, he, ?_⟩ rw [weightedEnergy_two] simp_rw [hmoment] rw [integral_const_mul, ← energy, hde]
Causalean.Mathlib.Analysis.Fourier.inverse_energy_endpoints · Causalean/Mathlib/Analysis/Fourier/FourierEndpoints.lean:84 · uses CompactInverseData , energy , weightedEnergy
2 supporting declarations (lemmas, instances)
  • inverse_plancherel theorem — A continuous complex frequency function with an integrable frequency representation and an integrable inverse Fourier transform has equal finite squared L² energies in frequency and physical space.
    G :
    ℝ → ℂ
    hcont :
    hG :
    hinv :
    Integrable (𝓕⁻ G)
    conclusion 1
    Integrable (fun ξ => ‖G ξ‖ ^ 2)
    conclusion 2
    Integrable (fun v => ‖𝓕⁻ G v‖ ^ 2)
    conclusion 3
    energy (𝓕⁻ G) = energy G
    Proof (Lean source)
    theorem inverse_plancherel (G : ℝ → ℂ) (hcont : Continuous G) (hG : Integrable G) (hinv : Integrable (𝓕⁻ G)) : Integrable (fun ξ => ‖G ξ‖ ^ 2) ∧ Integrable (fun v => ‖𝓕⁻ G v‖ ^ 2) ∧ energy (𝓕⁻ G) = energy G := by have hforward : Integrable (𝓕 G) := by simpa only [Real.fourierInv_eq_fourier_neg, neg_neg] using hinv.comp_neg have hinversion := hcont.fourier_fourierInv_eq hG hforward have square_integrable (f : ℝ → ℂ) (hf : Integrable f) (C : ℝ) (hbound : ∀ x, ‖f x‖ ≤ C) : Integrable (fun x => ‖f x‖ ^ 2) := by apply (hf.norm.const_mul C).mono' (hf.aestronglyMeasurable.norm.pow 2) filter_upwards [] with x rw [Real.norm_eq_abs, abs_of_nonneg (sq_nonneg _), pow_two] exact mul_le_mul_of_nonneg_right (hbound x) (norm_nonneg _) have hsqinv : Integrable (fun x => ‖𝓕⁻ G x‖ ^ 2) := square_integrable _ hinv (∫ x, ‖G x‖) fun x => VectorFourier.norm_fourierIntegral_le_integral_norm Real.fourierChar volume (-innerₗ ℝ) G x have hsqG : Integrable (fun x => ‖G x‖ ^ 2) := by apply square_integrable _ hG (∫ x, ‖𝓕⁻ G x‖) intro x rw [← congrFun hinversion x] exact VectorFourier.norm_fourierIntegral_le_integral_norm Real.fourierChar volume (innerₗ ℝ) (𝓕⁻ G) x refine ⟨hsqG, hsqinv, ?_⟩ have hflip : -(-innerₗ ℝ).flip = innerₗ ℝ := by ext simp have hsesq := VectorFourier.integral_sesq_fourierIntegral_eq_neg_flip (innerSL ℂ) Real.continuous_fourierChar (show Continuous (fun p : ℝ × ℝ => (-innerₗ ℝ) p.1 p.2) from (innerSL ℝ).continuous₂.neg) hG hinv rw [hflip] at hsesq change (∫ x, inner ℂ (𝓕⁻ G x) (𝓕⁻ G x)) = ∫ x, inner ℂ (G x) (𝓕 (𝓕⁻ G) x) at hsesq rw [hinversion] at hsesq simp only [inner_self_eq_norm_sq_to_K] at hsesq exact_mod_cast hsesq
    Causalean.Mathlib.Analysis.Fourier.inverse_plancherel · Causalean/Mathlib/Analysis/Fourier/FourierEndpoints.lean:36
  • inverse_deriv_eq theorem — A complex frequency multiplier with an integrable frequency representation, a differentiable frequency profile, an integrable first derivative, and a physical-space location has the stated inverse-Fourier derivative–multiplication identity.
    G :
    ℝ → ℂ
    hG :
    hdiff :
    hD :
    v :
    ℝ
    𝓕⁻ (deriv G) v = (-2 * (Real.pi : ℂ) * I * (v : ℂ)) * 𝓕⁻ G v
    Proof (Lean source)
    theorem inverse_deriv_eq (G : ℝ → ℂ) (hG : Integrable G) (hdiff : Differentiable ℝ G) (hD : Integrable (deriv G)) (v : ℝ) : 𝓕⁻ (deriv G) v = (-2 * (Real.pi : ℂ) * I * (v : ℂ)) * 𝓕⁻ G v := by rw [Real.fourierInv_eq_fourier_neg, Real.fourierInv_eq_fourier_neg] simpa [smul_eq_mul, mul_neg, neg_mul] using congrFun (Real.fourier_deriv hG hdiff hD) (-v)
    Causalean.Mathlib.Analysis.Fourier.inverse_deriv_eq · Causalean/Mathlib/Analysis/Fourier/FourierEndpoints.lean:76
Multiplier­Bounds 2 core · 3 supporting For a bandwidth h, a sixth convolution of sinc frequency boxes is supported in [-3/(πh), 3/(πh)]. ★ inverseGaussian_deriv_energy_le

Quantitative inverse Gaussian multiplier bounds

For a bandwidth h, a sixth convolution of sinc frequency boxes is supported in [-3/(πh), 3/(πh)]. Bounds ‖F‖∞ ≤ a h and ‖F'‖∞ ≤ b h² are the reusable inputs; this module does not construct that convolution. On its support the inverse Gaussian factor is at most exp(18 (σ/h)²). Squared norms therefore cost exp(36 (σ/h)²). Integrating the support length gives fully visible L² constants.

def inverseGaussian reviewed
Causalean.Mathlib.Analysis.Fourier

A Gaussian scale parameter and a complex frequency profile determine the inverse-Gaussian frequency multiplier by multiplication with the reciprocal Gaussian characteristic function.

Definition (Lean source)
σ :
ℝ
F :
ℝ → ℂ
inverseGaussian σ F :
ℝ → ℂ
fun ξ => F ξ * (exp (σ ^ 2 * (2 * pi * ξ) ^ 2 / 2) : ℂ)
Causalean.Mathlib.Analysis.Fourier.inverseGaussian · Causalean/Mathlib/Analysis/Fourier/MultiplierBounds.lean:35
theorem inverseGaussian_deriv_energy_le reviewed
Causalean.Mathlib.Analysis.Fourier

For a complex frequency profile F with one continuous derivative, a nonnegative Gaussian scale σ and positive bandwidth h, and nonnegative height constants a and b, suppose F vanishes outside the interval of radius 3/(πh) around zero and |F| ≤ a·h and |F′| ≤ b·h² everywhere. Then the integral of the squared modulus of the derivative of the inverse-Gaussian multiplier of F is at most (6/π)·(b + 12π·a)²·h³·(1 + σ/h)⁴·exp(36·(σ/h)²).

Formal statement
F :
ℝ → ℂ
σ h a b :
ℝ
hF :
ContDiff ℝ 1 F
hh :
0 < h
hσ :
0 ≤ σ
ha :
0 ≤ a
hb :
0 ≤ b
hsupport :
support F ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h))
hbound :
∀ ξ, ‖F ξ‖ ≤ a * h
hderiv :
∀ ξ, ‖deriv F ξ‖ ≤ b * h ^ 2
≤ (6 / pi) * (b + 12 * pi * a) ^ 2 * h ^ 3 * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2)
Proof (Lean source)
theorem inverseGaussian_deriv_energy_le (F : ℝ → ℂ) (σ h a b : ℝ) (hF : ContDiff ℝ 1 F) (hh : 0 < h) (hσ : 0 ≤ σ) (ha : 0 ≤ a) (hb : 0 ≤ b) (hsupport : support F ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h))) (hbound : ∀ ξ, ‖F ξ‖ ≤ a * h) (hderiv : ∀ ξ, ‖deriv F ξ‖ ≤ b * h ^ 2) : energy (deriv (inverseGaussian σ F)) ≤ (6 / pi) * (b + 12 * pi * a) ^ 2 * h ^ 3 * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2) := by have hG := inverseGaussian_contDiff F σ hF have hsG : support (inverseGaussian σ F) ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h)) := by intro x hx apply hsupport contrapose! hx simp [Function.mem_support, inverseGaussian, Function.notMem_support.mp hx] have hsD : support (deriv (inverseGaussian σ F)) ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h)) := support_deriv_subset.trans (closure_minimal hsG isClosed_Icc) have ht : 0 ≤ σ / h := div_nonneg hσ hh.le have hc : 0 ≤ b + 12 * pi * a := by positivity have hpoly : b + 12 * pi * a * (σ / h) ^ 2 ≤ (b + 12 * pi * a) * (1 + σ / h) ^ 2 := by have ht1 : 1 ≤ (1 + σ / h) ^ 2 := by nlinarith have ht2 : (σ / h) ^ 2 ≤ (1 + σ / h) ^ 2 := by nlinarith have h1 := mul_le_mul_of_nonneg_left ht1 hb have h2 := mul_le_mul_of_nonneg_left ht2 (show 0 ≤ 12 * pi * a by positivity) nlinarith only [h1, h2] have hm : ∀ x ∈ Icc (-(3 / (pi * h))) (3 / (pi * h)), ‖deriv (inverseGaussian σ F) x‖ ≤ (h ^ 2 * (b + 12 * pi * a) * (1 + σ / h) ^ 2) * exp (18 * (σ / h) ^ 2) := by intro x hx have hlog : |4 * pi ^ 2 * σ ^ 2 * x| ≤ 12 * pi * σ ^ 2 / h := by rw [abs_mul, abs_of_nonneg (by positivity : 0 ≤ 4 * pi ^ 2 * σ ^ 2)] calc _ ≤ (4 * pi ^ 2 * σ ^ 2) * (3 / (pi * h)) := mul_le_mul_of_nonneg_left (abs_le.mpr hx) (by positivity) _ = _ := by field_simp; ring rw [inverseGaussian_deriv F σ x ((hF.differentiable (by norm_num)) x)] simp only [norm_mul, Complex.norm_real, Real.norm_eq_abs, abs_of_pos (Real.exp_pos _)] have hsum : ‖deriv F x + F x * (4 * pi ^ 2 * σ ^ 2 * x : ℝ)‖ ≤ h ^ 2 * (b + 12 * pi * a * (σ / h) ^ 2) := by calc _ ≤ ‖deriv F x‖ + ‖F x * (4 * pi ^ 2 * σ ^ 2 * x : ℝ)‖ := norm_add_le _ _ _ ≤ b * h ^ 2 + (a * h) * (12 * pi * σ ^ 2 / h) := by rw [norm_mul, Complex.norm_real, Real.norm_eq_abs] exact add_le_add (hderiv x) (mul_le_mul (hbound x) hlog (abs_nonneg _) (by positivity)) _ = _ := by field_simp calc _ ≤ (h ^ 2 * (b + 12 * pi * a * (σ / h) ^ 2)) * exp (18 * (σ / h) ^ 2) := mul_le_mul hsum (Real.exp_le_exp.mpr (gaussian_exponent_le σ h x hh hx)) (by positivity) (by positivity) _ ≤ _ := mul_le_mul_of_nonneg_right (by nlinarith [mul_le_mul_of_nonneg_left hpoly (sq_nonneg h)]) (by positivity) have he := energy_le_interval (deriv (inverseGaussian σ F)) (3 / (pi * h)) ((h ^ 2 * (b + 12 * pi * a) * (1 + σ / h) ^ 2) * exp (18 * (σ / h) ^ 2)) (hG.continuous_deriv (by norm_num)) (by positivity) hsD hm calc _ ≤ _ := he _ = _ := by rw [mul_pow, ← Real.exp_nat_mul] norm_num only [Nat.cast_ofNat] have hex : (2 : ℝ) * (18 * (σ / h) ^ 2) = 36 * (σ / h) ^ 2 := by ring rw [hex] field_simp ring
Causalean.Mathlib.Analysis.Fourier.inverseGaussian_deriv_energy_le · Causalean/Mathlib/Analysis/Fourier/MultiplierBounds.lean:154 · uses energy , inverseGaussian
3 supporting declarations (lemmas, instances)
  • inverseGaussian_contDiff theorem — A complex frequency profile with one continuous derivative and a Gaussian scale parameter give an inverse-Gaussian multiplier with one continuous derivative.
    F :
    ℝ → ℂ
    σ :
    ℝ
    hF :
    ContDiff ℝ 1 F
    Proof (Lean source)
    theorem inverseGaussian_contDiff (F : ℝ → ℂ) (σ : ℝ) (hF : ContDiff ℝ 1 F) : ContDiff ℝ 1 (inverseGaussian σ F) := by unfold inverseGaussian apply hF.mul exact Complex.ofRealCLM.contDiff.comp (Real.contDiff_exp.comp ((contDiff_const.mul ((contDiff_const.mul contDiff_id).pow 2)).div_const 2))
    Causalean.Mathlib.Analysis.Fourier.inverseGaussian_contDiff · Causalean/Mathlib/Analysis/Fourier/MultiplierBounds.lean:39
  • inverseGaussian_hasCompactSupport theorem — A complex frequency profile with compact spectral support and a Gaussian scale parameter give an inverse-Gaussian multiplier with compact spectral support.
    F :
    ℝ → ℂ
    σ :
    ℝ
    Proof (Lean source)
    theorem inverseGaussian_hasCompactSupport (F : ℝ → ℂ) (σ : ℝ) (hF : HasCompactSupport F) : HasCompactSupport (inverseGaussian σ F) := by exact hF.mul_right
    Causalean.Mathlib.Analysis.Fourier.inverseGaussian_hasCompactSupport · Causalean/Mathlib/Analysis/Fourier/MultiplierBounds.lean:48
  • inverseGaussian_energy_le theorem — A continuous complex frequency profile, a Gaussian scale parameter and positive bandwidth, a nonnegative height constant, sinc-six spectral support, and a uniform height bound imply the stated squared L² bound for the inverse-Gaussian multiplier.
    F :
    ℝ → ℂ
    σ h a :
    ℝ
    hF :
    hh :
    0 < h
    ha :
    0 ≤ a
    hsupport :
    support F ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h))
    hbound :
    ∀ ξ, ‖F ξ‖ ≤ a * h
    energy (inverseGaussian σ F) ≤ (6 / pi) * a ^ 2 * h * exp (36 * (σ / h) ^ 2)
    Proof (Lean source)
    theorem inverseGaussian_energy_le (F : ℝ → ℂ) (σ h a : ℝ) (hF : Continuous F) (hh : 0 < h) (ha : 0 ≤ a) (hsupport : support F ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h))) (hbound : ∀ ξ, ‖F ξ‖ ≤ a * h) : energy (inverseGaussian σ F) ≤ (6 / pi) * a ^ 2 * h * exp (36 * (σ / h) ^ 2) := by have hs : support (inverseGaussian σ F) ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h)) := by intro x hx apply hsupport contrapose! hx simp [Function.mem_support, inverseGaussian, Function.notMem_support.mp hx] have hg : Continuous (inverseGaussian σ F) := by unfold inverseGaussian fun_prop have hm : ∀ x ∈ Icc (-(3 / (pi * h))) (3 / (pi * h)), ‖inverseGaussian σ F x‖ ≤ a * h * exp (18 * (σ / h) ^ 2) := by intro x hx simp only [inverseGaussian, norm_mul, Complex.norm_real, Real.norm_eq_abs, abs_of_pos (Real.exp_pos _)] exact mul_le_mul (hbound x) (Real.exp_le_exp.mpr (gaussian_exponent_le σ h x hh hx)) (le_of_lt (Real.exp_pos _)) (mul_nonneg ha hh.le) have he := energy_le_interval (inverseGaussian σ F) (3 / (pi * h)) (a * h * exp (18 * (σ / h) ^ 2)) hg (by positivity) hs hm calc _ ≤ _ := he _ = _ := by rw [mul_pow, ← Real.exp_nat_mul] have hex : (2 : ℝ) * (18 * (σ / h) ^ 2) = 36 * (σ / h) ^ 2 := by ring norm_num only [Nat.cast_ofNat] at * rw [hex] field_simp ring
    Causalean.Mathlib.Analysis.Fourier.inverseGaussian_energy_le · Causalean/Mathlib/Analysis/Fourier/MultiplierBounds.lean:98
Angular­Fourier­Sobolev 1 core · 15 supporting This module combines angular Plancherel with weak coordinate multipliers to identify the zero- and first-order Fourier energies of compactly supported functions. ★ angular_first_energy

Angular Fourier Sobolev energies

This module combines angular Plancherel with weak coordinate multipliers to identify the zero- and first-order Fourier energies of compactly supported functions. It includes the real slice interface, finite energy bounds, and exact dimension-two specializations.

theorem angular_first_energy reviewed
Causalean.Mathlib.Analysis.Fourier

In a positive dimension p, for an integrable, square-integrable, compactly supported complex function G whose weak coordinate derivatives D_r are integrable and square-integrable, the first-order angular Fourier energy of G — the integral of |Ĝ(w)|²·(1 + ‖w‖²/p) — equals the squared L² energy of G plus 1/p times the sum over coordinates of the squared L² energies of the D_r.

Formal statement
p :
ℕ
shared
hp :
1 ≤ p
G :
Space p → ℂ
D :
Fin p → Space p → ℂ
hG1 :
hG2 :
hD1 :
∀ r, Integrable (D r) volume
hD2 :
∀ r, MemLp (D r) 2 volume
hweak :
firstEnergy G = l2Energy G + ofReal ((p : ℝ)⁻¹) * ∑ r, l2Energy (D r)
Proof (Lean source)
theorem angular_first_energy (hp : 1 ≤ p) (G : Space p → ℂ) (D : Fin p → Space p → ℂ) (hG1 : Integrable G volume) (hG2 : MemLp G 2 volume) (hGc : HasCompactSupport G) (hD1 : ∀ r, Integrable (D r) volume) (hD2 : ∀ r, MemLp (D r) 2 volume) (hweak : ∀ r, HasWeakCoordinateDerivative G (D r) r) : firstEnergy G = l2Energy G + ofReal ((p : ℝ)⁻¹) * ∑ r, l2Energy (D r) := by rw [firstEnergy_eq_coordinate_sum hp G hG1, angular_plancherel G hG1 hG2] have hc : ∀ r : Fin p, (∫⁻ w, ofReal (‖angularFourier G w‖ ^ 2 * (w r) ^ 2)) = l2Energy (D r) := fun r => angular_coordinate_energy G (D r) r (hD1 r) (hD2 r) hGc (hweak r) simp_rw [hc]
15 supporting declarations (lemmas, instances)
Angular­Fourier­Weak­Derivative 1 core · 16 supporting This module supplies the spatial weak-derivative interface and proves the angular Fourier multiplier identity. ★ sliceIBP_to_weakDerivative

Weak coordinate derivatives for angular Fourier transforms

This module supplies the spatial weak-derivative interface and proves the angular Fourier multiplier identity. It also turns real coordinate-slice integration by parts into that interface using the exact Euclidean/product-Lebesgue coordinate equivalence.

theorem sliceIBP_to_weakDerivative reviewed
Causalean.Mathlib.Analysis.Fourier

An integrable real spatial function and integrable proposed coordinate derivatives satisfying real slice integration by parts give in each coordinate the complex weak derivative: the complexified proposed derivative is the weak coordinate derivative of the complexified function.

Formal statement
p :
ℕ
shared
G :
Space p → ℝ
D :
Fin p → Space p → ℝ
hD :
∀ r, Integrable (D r) volume
hslice :
r :
Fin p
Proof (Lean source)
theorem sliceIBP_to_weakDerivative (G : Space p → ℝ) (D : Fin p → Space p → ℝ) (hG : Integrable G volume) (hD : ∀ r, Integrable (D r) volume) (hslice : HasRealSliceIBP G D) (r : Fin p) : HasWeakCoordinateDerivative (complexify G) (complexify (D r)) r := by intro φ hφ hφc obtain ⟨hleft, hright⟩ := integrable_compact_test_products (complexify G) (complexify (D r)) r (integrable_complexify G hG) (integrable_complexify (D r) (hD r)) φ hφ hφc have hupdate (z : RemainingCoordinates r) (t : ℝ) : updateCoordinate (insertCoordinate r z 0) r t = insertCoordinate r z t := by apply PiLp.ext intro s by_cases hs : s = r · subst s simp [updateCoordinate, insertCoordinate] · simp [updateCoordinate, insertCoordinate, hs] rw [integral_coordinate_slices r _ hleft, integral_coordinate_slices r _ hright, ← integral_neg] apply integral_congr_ae filter_upwards [integrable_coordinate_slices_ae _ hleft r, integrable_coordinate_slices_ae _ hright r] with z hzleft hzright have h := realSliceIBP_complex_test G D hslice r (insertCoordinate r z 0) (fun t => φ (updateCoordinate (insertCoordinate r z 0) r t)) (fun t => coordinateDerivative φ r (updateCoordinate (insertCoordinate r z 0) r t)) (hasDerivAt_test_coordinate_slice φ hφ (insertCoordinate r z 0) r) (continuous_test_coordinate_slice_derivative φ hφ (insertCoordinate r z 0) r) (by simpa only [hupdate, complexify] using hzleft) (by simpa only [hupdate, complexify] using hzright) simpa only [hupdate, complexify] using h
16 supporting declarations (lemmas, instances)
Estimate 1 core · 1 supporting The main theorem gives the geometric interpolation bound directly in terms of the frequency-space squared L² norms of G and G', with the normalization constant visible. ★ inverse_weightedEnergy_le

Quantitative weighted inverse-Fourier estimates

The main theorem gives the geometric interpolation bound directly in terms of the frequency-space squared L² norms of G and G', with the normalization constant visible. The scale-dependent variant is useful for bandwidth families. Compactness and C¹ regularity, together with standard absolute-integrability inversion hypotheses, suffice.

theorem inverse_weightedEnergy_le reviewed
Causalean.Mathlib.Analysis.Fourier

For a complex frequency multiplier G with admissible compact inverse-Fourier data and a moment exponent κ between zero and two, the function |v|^κ·|g(v)|², with g the inverse Fourier transform of G, is integrable, and its integral is at most E₀^(1 − κ/2)·((2π)⁻²·E₁)^(κ/2), where E₀ is the integral of |G|² and E₁ the integral of |G′|².

Formal statement
G :
ℝ → ℂ
κ :
ℝ
hκ0 :
0 ≤ κ
hκ2 :
κ ≤ 2
conclusion 1
Integrable (fun v => |v| ^ κ * ‖𝓕⁻ G v‖ ^ 2)
conclusion 2
weightedEnergy κ (𝓕⁻ G)
≤ (energy G) ^ (1 - κ / 2) * ((2 * pi)⁻¹ ^ 2 * energy (deriv G)) ^ (κ / 2)
Proof (Lean source)
theorem inverse_weightedEnergy_le (G : ℝ → ℂ) (hG : CompactInverseData G) (κ : ℝ) (hκ0 : 0 ≤ κ) (hκ2 : κ ≤ 2) : Integrable (fun v => |v| ^ κ * ‖𝓕⁻ G v‖ ^ 2) ∧ weightedEnergy κ (𝓕⁻ G) ≤ (energy G) ^ (1 - κ / 2) * ((2 * pi)⁻¹ ^ 2 * energy (deriv G)) ^ (κ / 2) := by obtain ⟨h0, h2, e0, e2⟩ := inverse_energy_endpoints G hG refine ⟨integrable_weightedEnergy (𝓕⁻ G) κ hG.integrable_inverse.aestronglyMeasurable hκ0 hκ2 h0 h2, ?_⟩ simpa only [e0, e2] using weightedEnergy_le_interpolation (𝓕⁻ G) κ hκ0 hκ2 h0 h2
Causalean.Mathlib.Analysis.Fourier.inverse_weightedEnergy_le · Causalean/Mathlib/Analysis/Fourier/Estimate.lean:20 · uses CompactInverseData , energy , weightedEnergy
1 supporting declaration (lemmas, instances)
Interpolation 1 core · 3 supporting The geometric interpolation inequality assumes only integrable zeroth and second moments; the integrability statement and the additive bound also assume an almost-everywhere strongly measurable function. ★ weightedEnergy_le_interpolation

Interpolating absolute weighted L² energies

The geometric interpolation inequality assumes only integrable zeroth and second moments; the integrability statement and the additive bound also assume an almost-everywhere strongly measurable function. Both the geometric interpolation inequality and a scale-dependent additive bound include κ = 0 and κ = 2. Integrability of the weighted integrand is proved separately, so the real integral's nonintegrable-zero convention does not make the estimates meaningless.

theorem weightedEnergy_le_interpolation reviewed
Causalean.Mathlib.Analysis.Fourier

For a complex-valued function g on the real line, a moment exponent κ between zero and two, and integrable |g|² and v²·|g(v)|², the integral of |v|^κ·|g(v)|² is at most E₀^(1 − κ/2)·E₂^(κ/2), where E₀ is the integral of |g|² and E₂ the integral of v²·|g(v)|².

Formal statement
g :
ℝ → ℂ
κ :
ℝ
hκ0 :
0 ≤ κ
hκ2 :
κ ≤ 2
h0 :
Integrable (fun v => ‖g v‖ ^ 2)
h2 :
Integrable (fun v => v ^ 2 * ‖g v‖ ^ 2)
weightedEnergy κ g ≤ (energy g) ^ (1 - κ / 2) * (weightedEnergy 2 g) ^ (κ / 2)
Proof (Lean source)
theorem weightedEnergy_le_interpolation (g : ℝ → ℂ) (κ : ℝ) (hκ0 : 0 ≤ κ) (hκ2 : κ ≤ 2) (h0 : Integrable (fun v => ‖g v‖ ^ 2)) (h2 : Integrable (fun v => v ^ 2 * ‖g v‖ ^ 2)) : weightedEnergy κ g ≤ (energy g) ^ (1 - κ / 2) * (weightedEnergy 2 g) ^ (κ / 2) := by rcases eq_or_lt_of_le hκ0 with hk | hk · subst κ simp [weightedEnergy_zero] rcases eq_or_lt_of_le hκ2 with hk2 | hk2 · subst κ simp let a : ℝ := 1 - κ / 2 let b : ℝ := κ / 2 have ha : 0 < a := by dsimp [a]; linarith have hb : 0 < b := by dsimp [b]; linarith have hab : a + b = 1 := by dsimp [a, b]; ring have hpq : a⁻¹.HolderConjugate b⁻¹ := Real.HolderConjugate.inv_inv ha hb hab have hmem : ∀ (f : ℝ → ℝ) (c : ℝ), (∀ v, 0 ≤ f v) → Integrable f → 0 < c → MemLp (fun v => f v ^ c) (ofReal c⁻¹) := by intro f c hf hi hc have hm := (Real.continuous_rpow_const hc.le).comp_aestronglyMeasurable hi.1 apply (integrable_norm_rpow_iff hm (ne_of_gt (ENNReal.ofReal_pos.mpr (inv_pos.mpr hc))) ENNReal.ofReal_ne_top).mp have hid : (fun v => ‖f v ^ c‖ ^ (ofReal c⁻¹).toReal) = f := by funext v rw [ENNReal.toReal_ofReal (inv_pos.mpr hc).le, Real.norm_eq_abs, abs_of_nonneg (Real.rpow_nonneg (hf v) c), ← Real.rpow_mul (hf v), mul_inv_cancel₀ hc.ne', Real.rpow_one] rwa [hid] have hf := hmem (fun v => ‖g v‖ ^ 2) a (fun v => sq_nonneg _) h0 ha have hh := hmem (fun v => v ^ 2 * ‖g v‖ ^ 2) b (fun v => mul_nonneg (sq_nonneg v) (sq_nonneg _)) h2 hb have hpow0 : (fun v => ((‖g v‖ ^ 2 : ℝ) ^ a) ^ a⁻¹) = (fun v => ‖g v‖ ^ 2) := by funext v rw [← Real.rpow_mul (sq_nonneg _), mul_inv_cancel₀ ha.ne', Real.rpow_one] have hpow2 : (fun v => ((v ^ 2 * ‖g v‖ ^ 2 : ℝ) ^ b) ^ b⁻¹) = (fun v => v ^ 2 * ‖g v‖ ^ 2) := by funext v rw [← Real.rpow_mul (mul_nonneg (sq_nonneg _) (sq_nonneg _)), mul_inv_cancel₀ hb.ne', Real.rpow_one] have hprod : (fun v => (‖g v‖ ^ 2 : ℝ) ^ a * (v ^ 2 * ‖g v‖ ^ 2) ^ b) = (fun v => |v| ^ κ * ‖g v‖ ^ 2) := by funext v rw [Real.mul_rpow (sq_nonneg v) (sq_nonneg _)] calc (‖g v‖ ^ 2 : ℝ) ^ a * ((v ^ 2 : ℝ) ^ b * (‖g v‖ ^ 2 : ℝ) ^ b) = (v ^ 2 : ℝ) ^ b * ((‖g v‖ ^ 2 : ℝ) ^ a * (‖g v‖ ^ 2 : ℝ) ^ b) := by ring _ = (v ^ 2 : ℝ) ^ b * ‖g v‖ ^ 2 := by rw [← Real.rpow_add_of_nonneg (sq_nonneg _) ha.le hb.le, hab, Real.rpow_one] _ = |v| ^ κ * ‖g v‖ ^ 2 := by rw [← sq_abs, ← Real.rpow_two, ← Real.rpow_mul (abs_nonneg v)] congr 2 dsimp [b] ring have hhölder := integral_mul_le_Lp_mul_Lq_of_nonneg hpq (Filter.Eventually.of_forall fun v => Real.rpow_nonneg (sq_nonneg ‖g v‖) a) (Filter.Eventually.of_forall fun v => Real.rpow_nonneg (mul_nonneg (sq_nonneg v) (sq_nonneg ‖g v‖)) b) hf hh simp only [one_div, inv_inv] at hhölder rw [hpow0, hpow2, hprod] at hhölder rw [weightedEnergy_two] simpa only [weightedEnergy, energy, a, b] using hhölder
Causalean.Mathlib.Analysis.Fourier.weightedEnergy_le_interpolation · Causalean/Mathlib/Analysis/Fourier/Interpolation.lean:56 · uses energy , weightedEnergy
3 supporting declarations (lemmas, instances)
  • abs_rpow_le_scaled_quadratic theorem — A moment exponent in the interval from zero to two, a positive reference scale, and a real location give the stated bound of its absolute power by zeroth and quadratic weights.
    κ h v :
    ℝ
    hκ0 :
    0 ≤ κ
    hκ2 :
    κ ≤ 2
    hh :
    0 < h
    |v| ^ κ ≤ h ^ κ + h ^ (κ - 2) * v ^ 2
    Proof (Lean source)
    theorem abs_rpow_le_scaled_quadratic (κ h v : ℝ) (hκ0 : 0 ≤ κ) (hκ2 : κ ≤ 2) (hh : 0 < h) : |v| ^ κ ≤ h ^ κ + h ^ (κ - 2) * v ^ 2 := by by_cases hv : |v| ≤ h · exact (Real.rpow_le_rpow (abs_nonneg v) hv hκ0).trans (le_add_of_nonneg_right (mul_nonneg (Real.rpow_nonneg hh.le _) (sq_nonneg v))) · have hvpos : 0 < |v| := lt_trans hh (lt_of_not_ge hv) have hpow : |v| ^ (κ - 2) ≤ h ^ (κ - 2) := Real.rpow_le_rpow_of_nonpos hh (le_of_lt (lt_of_not_ge hv)) (by linarith) have hid : |v| ^ κ = |v| ^ (κ - 2) * v ^ 2 := by rw [← sq_abs, ← Real.rpow_two, ← Real.rpow_add hvpos] congr 1 ring rw [hid] exact (mul_le_mul_of_nonneg_right hpow (sq_nonneg v)).trans (le_add_of_nonneg_left (Real.rpow_nonneg hh.le _))
    Causalean.Mathlib.Analysis.Fourier.abs_rpow_le_scaled_quadratic · Causalean/Mathlib/Analysis/Fourier/Interpolation.lean:21
  • integrable_weightedEnergy theorem — A complex-valued function with almost-everywhere strong measurability, a moment exponent in the interval from zero to two, and finite ordinary and quadratic squared energies have an integrable weighted squared energy.
    g :
    ℝ → ℂ
    κ :
    ℝ
    hκ0 :
    0 ≤ κ
    hκ2 :
    κ ≤ 2
    h0 :
    Integrable (fun v => ‖g v‖ ^ 2)
    h2 :
    Integrable (fun v => v ^ 2 * ‖g v‖ ^ 2)
    Integrable (fun v => |v| ^ κ * ‖g v‖ ^ 2)
    Proof (Lean source)
    theorem integrable_weightedEnergy (g : ℝ → ℂ) (κ : ℝ) (hg : AEStronglyMeasurable g) (hκ0 : 0 ≤ κ) (hκ2 : κ ≤ 2) (h0 : Integrable (fun v => ‖g v‖ ^ 2)) (h2 : Integrable (fun v => v ^ 2 * ‖g v‖ ^ 2)) : Integrable (fun v => |v| ^ κ * ‖g v‖ ^ 2) := by have hm : AEStronglyMeasurable (fun v : ℝ => |v| ^ κ * ‖g v‖ ^ 2) := by exact ((Real.continuous_rpow_const hκ0).comp continuous_abs).aestronglyMeasurable.mul (hg.norm.pow 2) refine (h0.add h2).mono' hm (Filter.Eventually.of_forall fun v => ?_) rw [Real.norm_eq_abs, abs_of_nonneg (mul_nonneg (Real.rpow_nonneg (abs_nonneg v) κ) (sq_nonneg _))] have hb := abs_rpow_le_scaled_quadratic κ 1 v hκ0 hκ2 zero_lt_one simp only [Real.one_rpow, one_mul] at hb simpa only [Pi.add_apply, add_mul, one_mul] using mul_le_mul_of_nonneg_right hb (sq_nonneg ‖g v‖)
    Causalean.Mathlib.Analysis.Fourier.integrable_weightedEnergy · Causalean/Mathlib/Analysis/Fourier/Interpolation.lean:39
  • weightedEnergy_le_scaled theorem — A complex-valued function with almost-everywhere strong measurability, a moment exponent in the interval from zero to two, a positive reference scale, and finite ordinary and quadratic squared energies satisfy the scale-dependent additive weighted-energy bound.
    g :
    ℝ → ℂ
    κ h :
    ℝ
    hκ0 :
    0 ≤ κ
    hκ2 :
    κ ≤ 2
    hh :
    0 < h
    h0 :
    Integrable (fun v => ‖g v‖ ^ 2)
    h2 :
    Integrable (fun v => v ^ 2 * ‖g v‖ ^ 2)
    weightedEnergy κ g ≤ h ^ κ * energy g + h ^ (κ - 2) * weightedEnergy 2 g
    Proof (Lean source)
    theorem weightedEnergy_le_scaled (g : ℝ → ℂ) (κ h : ℝ) (hg : AEStronglyMeasurable g) (hκ0 : 0 ≤ κ) (hκ2 : κ ≤ 2) (hh : 0 < h) (h0 : Integrable (fun v => ‖g v‖ ^ 2)) (h2 : Integrable (fun v => v ^ 2 * ‖g v‖ ^ 2)) : weightedEnergy κ g ≤ h ^ κ * energy g + h ^ (κ - 2) * weightedEnergy 2 g := by have hw := integrable_weightedEnergy g κ hg hκ0 hκ2 h0 h2 have hr := (h0.const_mul (h ^ κ)).add (h2.const_mul (h ^ (κ - 2))) have hi := integral_mono hw hr (fun v => by simpa only [Pi.add_apply, add_mul, mul_assoc] using mul_le_mul_of_nonneg_right (abs_rpow_le_scaled_quadratic κ h v hκ0 hκ2 hh) (sq_nonneg ‖g v‖)) rw [weightedEnergy_two] simpa only [weightedEnergy, energy, Pi.add_apply, add_mul, mul_assoc, integral_add (h0.const_mul _) (h2.const_mul _), integral_const_mul] using hi
    Causalean.Mathlib.Analysis.Fourier.weightedEnergy_le_scaled · Causalean/Mathlib/Analysis/Fourier/Interpolation.lean:123
Weighted­Specialization 1 core · 1 supporting This theorem combines the frequency norm bounds with the reusable scaled Fourier estimate, keeping every profile constant visible. ★ inverseGaussian_weightedEnergy_le

Weighted inverse Gaussian multiplier specialization

This theorem combines the frequency norm bounds with the reusable scaled Fourier estimate, keeping every profile constant visible. It is independent of subsequent physical-space averaging, so the frequency specialization can be checked on its own. The multiplier profile and all inversion hypotheses are supplied by the caller; the weighted physical-space bound is derived here.

theorem inverseGaussian_weightedEnergy_le reviewed
Causalean.Mathlib.Analysis.Fourier

For a compactly supported continuously differentiable frequency profile F, a moment exponent κ between zero and two, a nonnegative Gaussian scale σ and positive bandwidth h, and nonnegative envelope constants a and b, suppose F vanishes outside the interval of radius 3/(πh) around zero, |F| ≤ a·h and |F′| ≤ b·h² everywhere, and the inverse Fourier transforms of the inverse-Gaussian multiplier of F and of its derivative are integrable. Then, writing g for the inverse Fourier transform of that multiplier, |v|^κ·|g(v)|² is integrable and its integral is at most (6/π)·(a² + (2π)⁻²·(b + 12π·a)²)·h^(κ+1)·(1 + σ/h)⁴·exp(36·(σ/h)²).

Formal statement
F :
ℝ → ℂ
κ σ h a b :
ℝ
hF :
ContDiff ℝ 1 F
hcompact :
hκ0 :
0 ≤ κ
hκ2 :
κ ≤ 2
hh :
0 < h
hσ :
0 ≤ σ
ha :
0 ≤ a
hb :
0 ≤ b
hsupport :
support F ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h))
hbound :
∀ ξ, ‖F ξ‖ ≤ a * h
hderiv :
∀ ξ, ‖deriv F ξ‖ ≤ b * h ^ 2
hinv :
Integrable (𝓕⁻ (inverseGaussian σ F))
hinvD :
Integrable (𝓕⁻ (deriv (inverseGaussian σ F)))
conclusion 1
Integrable (fun v => |v| ^ κ * ‖𝓕⁻ (inverseGaussian σ F) v‖ ^ 2)
conclusion 2
weightedEnergy κ (𝓕⁻ (inverseGaussian σ F))
≤ ((6 / pi) * (a ^ 2 + (2 * pi)⁻¹ ^ 2 * (b + 12 * pi * a) ^ 2)) * h ^ (κ + 1) * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2)
Proof (Lean source)
theorem inverseGaussian_weightedEnergy_le (F : ℝ → ℂ) (κ σ h a b : ℝ) (hF : ContDiff ℝ 1 F) (hcompact : HasCompactSupport F) (hκ0 : 0 ≤ κ) (hκ2 : κ ≤ 2) (hh : 0 < h) (hσ : 0 ≤ σ) (ha : 0 ≤ a) (hb : 0 ≤ b) (hsupport : support F ⊆ Icc (-(3 / (pi * h))) (3 / (pi * h))) (hbound : ∀ ξ, ‖F ξ‖ ≤ a * h) (hderiv : ∀ ξ, ‖deriv F ξ‖ ≤ b * h ^ 2) (hinv : Integrable (𝓕⁻ (inverseGaussian σ F))) (hinvD : Integrable (𝓕⁻ (deriv (inverseGaussian σ F)))) : Integrable (fun v => |v| ^ κ * ‖𝓕⁻ (inverseGaussian σ F) v‖ ^ 2) ∧ weightedEnergy κ (𝓕⁻ (inverseGaussian σ F)) ≤ ((6 / pi) * (a ^ 2 + (2 * pi)⁻¹ ^ 2 * (b + 12 * pi * a) ^ 2)) * h ^ (κ + 1) * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2) := by have hG := inverseGaussian_compactInverseData F σ hF hcompact hinv hinvD refine ⟨(inverse_weightedEnergy_le (inverseGaussian σ F) hG κ hκ0 hκ2).1, ?_⟩ have he := inverseGaussian_energy_le F σ h a hF.continuous hh ha hsupport hbound have heD := inverseGaussian_deriv_energy_le F σ h a b hF hh hσ ha hb hsupport hbound hderiv have hpoly : 1 ≤ (1 + σ / h) ^ 4 := one_le_pow₀ (by linarith [div_nonneg hσ hh.le]) have hpow1 : h ^ κ * h = h ^ (κ + 1) := by rw [Real.rpow_add hh, Real.rpow_one] have hpow3 : h ^ (κ - 2) * h ^ 3 = h ^ (κ + 1) := by rw [← Real.rpow_natCast h 3, ← Real.rpow_add hh] congr 1 norm_num ring have hepoly : (6 / pi) * a ^ 2 * h * exp (36 * (σ / h) ^ 2) ≤ (6 / pi) * a ^ 2 * h * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2) := by have hp := mul_le_mul_of_nonneg_left hpoly (show 0 ≤ (6 / pi) * a ^ 2 * h by positivity) exact mul_le_mul_of_nonneg_right (by simpa only [mul_one] using hp) (Real.exp_pos _).le calc _ ≤ h ^ κ * energy (inverseGaussian σ F) + h ^ (κ - 2) * (2 * pi)⁻¹ ^ 2 * energy (deriv (inverseGaussian σ F)) := inverse_weightedEnergy_le_scaled (inverseGaussian σ F) hG κ h hκ0 hκ2 hh _ ≤ h ^ κ * ((6 / pi) * a ^ 2 * h * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2)) + h ^ (κ - 2) * (2 * pi)⁻¹ ^ 2 * ((6 / pi) * (b + 12 * pi * a) ^ 2 * h ^ 3 * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2)) := add_le_add (mul_le_mul_of_nonneg_left (he.trans hepoly) (by positivity)) (mul_le_mul_of_nonneg_left heD (by positivity)) _ = (6 / pi) * a ^ 2 * (h ^ κ * h) * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2) + (6 / pi) * (2 * pi)⁻¹ ^ 2 * (b + 12 * pi * a) ^ 2 * (h ^ (κ - 2) * h ^ 3) * (1 + σ / h) ^ 4 * exp (36 * (σ / h) ^ 2) := by ring _ = _ := by rw [hpow1, hpow3]; ring
Causalean.Mathlib.Analysis.Fourier.inverseGaussian_weightedEnergy_le · Causalean/Mathlib/Analysis/Fourier/WeightedSpecialization.lean:30 · uses inverseGaussian , weightedEnergy
1 supporting declaration (lemmas, instances)