Documentation

CsdLean4.Mathlib.Analysis.Fourier.Wigner

The Wigner function on Schwartz space #

Category: 1-Mathlib (staged for upstream). BACKLOG #45 — the Wigner–Moyal phase-space formulation, the part that is Fourier analysis.

Glossary: https://glossary.constraintsurfacedynamics.com/wigner-function/ Plain-language, CSD-role and formal statements of the Wigner function, with this module as the Lean anchor. Kept symmetric by scripts/check-glossary.sh.

For ψ ∈ 𝓢(ℝ, ℂ) the Wigner function is the Fourier transform in y of the kernel y ↦ ψ(x + y/2) · conj ψ(x − y/2), in Mathlib's convention 𝓕 f (ξ) = ∫ e^{−2πiyξ} f(y) dy:

W_ψ(x, ξ) = ∫ e^{−2πiyξ} ψ(x + y/2) conj ψ(x − y/2) dy.

The variable ξ is the frequency; the momentum is p = 2πξ (ℏ = m = 1, the convention of SchrodingerGroup.lean, where the free Hamiltonian is the multiplier 2π²ξ²).

Honest scope #

⚠️ One dimension, Schwartz data. Only the position and momentum moments of W are here; the Weyl expectation formula for a general symbol, and the overlap identity ∫∫ W_φ conj (W_ψ) = |⟨φ, ψ⟩|² that makes W determine the state, are WignerWeyl.lean (BACKLOG #63). What stays open there: Op(a) as a continuous operator on 𝒮(ℝ, ℂ), symbols of temperate growth, and the Schwartz property of (x, ξ) ↦ W_ψ(x, ξ) on ℝ² with the joint integrability it gives (BACKLOG #92). The Moyal bracket with its ℏ² expansion is MoyalBracket.lean (BACKLOG #64): the potential term of the Wigner equation is the Wigner transform of −i[V, ·] (★★★ moyalPot_eq_comm), it differs from the Poisson bracket by at most (sup|V'''|/24) times the third moment of the kernel (★★★ norm_moyalPot_sub_poisson_le), and the two agree exactly when V''' = 0 (★★★ moyalPot_eq_poisson_of_third_deriv_zero). The remaining part of #64 is the time-dependent equation for U_V(t)ψ, which needs a propagator differentiable on Schwartz functions.

References: E. Wigner, Phys. Rev. 40 (1932) 749; J. E. Moyal, Proc. Cambridge Philos. Soc. 45 (1949) 99; G. B. Folland, Harmonic Analysis in Phase Space (1989) §1.8; Mathlib/Analysis/Semigroup/SchrodingerSchwartz.lean, GaussianPacket.lean; specs/BACKLOG.md #45; specs/future-work.md.

Two continuous linear maps of Schwartz space #

y ↦ x + s y has temperate growth.

theorem WignerFunction.antilipschitzWith_affine (x : ℝ) {s : ℝ} (hs : s ≠ 0) :
AntilipschitzWith ⟨|s|⁻¹, ⋯⟩ fun (y : ℝ) => x + s * y

y ↦ x + s y is antilipschitz for s ≠ 0.

noncomputable def WignerFunction.affineCLM (x : ℝ) {s : ℝ} (hs : s ≠ 0) :

The reparametrisation ψ ↦ (y ↦ ψ(x + s y)), s ≠ 0, on Schwartz space.

Equations
Instances For
    @[simp]
    theorem WignerFunction.affineCLM_apply (x : ℝ) {s : ℝ} (hs : s ≠ 0) (ψ : SchwartzMap ℝ ℂ) (y : ℝ) :
    ((affineCLM x hs) ψ) y = ψ (x + s * y)

    The character y ↦ e^{2πiay} has temperate growth.

    The modulation ψ ↦ (y ↦ e^{2πiay} ψ(y)) on Schwartz space.

    Equations
    Instances For
      @[simp]
      theorem WignerFunction.modCLM_apply (a : ℝ) (ψ : SchwartzMap ℝ ℂ) (y : ℝ) :
      ((modCLM a) ψ) y = ↑(Real.fourierChar (a * y)) * ψ y

      Two Fourier identities on ℝ #

      theorem WignerFunction.fourier_char_mul (φ : ℝ → ℂ) (a w : ℝ) :
      FourierTransform.fourier (fun (y : ℝ) => ↑(Real.fourierChar (a * y)) * φ y) w = FourierTransform.fourier φ (w - a)

      Modulation shifts the Fourier transform: 𝓕 (e^{2πia·} φ) (w) = 𝓕 φ (w − a).

      theorem WignerFunction.fourier_comp_affine (φ : ℝ → ℂ) (x : ℝ) {s : ℝ} (hs : s ≠ 0) (w : ℝ) :
      FourierTransform.fourier (fun (y : ℝ) => φ (x + s * y)) w = |s⁻¹| • (↑(Real.fourierChar (x * (w / s))) * FourierTransform.fourier φ (w / s))

      The Fourier transform of an affine reparametrisation: 𝓕 (φ(x + s ·)) (w) = |s|⁻¹ e^{2πixw/s} 𝓕 φ (w/s), s ≠ 0.

      The Wigner function #

      The Wigner kernel y ↦ ψ(x + y/2) · conj ψ(x − y/2) as a Schwartz function of y.

      Equations
      Instances For
        theorem WignerFunction.wignerKernel_apply (ψ : SchwartzMap ℝ ℂ) (x y : ℝ) :
        (wignerKernel ψ x) y = ψ (x + y / 2) * (starRingEnd ℂ) (ψ (x - y / 2))
        noncomputable def WignerFunction.wigner (ψ : SchwartzMap ℝ ℂ) (x ξ : ℝ) :

        The Wigner function W_ψ(x, ξ) = ∫ e^{−2πiyξ} ψ(x + y/2) conj ψ(x − y/2) dy.

        Equations
        Instances For
          theorem WignerFunction.wigner_eq_integral (ψ : SchwartzMap ℝ ℂ) (x ξ : ℝ) :
          wigner ψ x ξ = ∫ (y : ℝ), ↑(Real.fourierChar (-(y * ξ))) * (ψ (x + y / 2) * (starRingEnd ℂ) (ψ (x - y / 2)))
          theorem WignerFunction.conj_wigner (ψ : SchwartzMap ℝ ℂ) (x ξ : ℝ) :
          (starRingEnd ℂ) (wigner ψ x ξ) = wigner ψ x ξ

          ★ The Wigner function is real.

          theorem WignerFunction.im_wigner (ψ : SchwartzMap ℝ ℂ) (x ξ : ℝ) :
          (wigner ψ x ξ).im = 0
          theorem WignerFunction.integral_wigner_right (ψ : SchwartzMap ℝ ℂ) (x : ℝ) :
          ∫ (ξ : ℝ), wigner ψ x ξ = ↑‖ψ x‖ ^ 2

          ★ The ξ-marginal is the position density: ∫ W_ψ(x, ξ) dξ = |ψ(x)|².

          The momentum representation #

          ★★ The momentum representation: W_{𝓕ψ}(ξ, −x) = W_ψ(x, ξ) — the Wigner function of the Fourier transform is the Wigner function with the roles of position and frequency exchanged (Parseval on the modulated reparametrisations).

          ★ The x-marginal is the momentum density: ∫ W_ψ(x, ξ) dx = |𝓕ψ(ξ)|².

          theorem WignerFunction.integral_integral_wigner (ψ : SchwartzMap ℝ ℂ) :
          ∫ (x : ℝ) (ξ : ℝ), wigner ψ x ξ = ∫ (x : ℝ), ↑‖ψ x‖ ^ 2

          Total mass: ∫∫ W_ψ = ∫ |ψ|².

          theorem WignerFunction.integral_integral_mul_wigner_left (ψ : SchwartzMap ℝ ℂ) :
          ∫ (x : ℝ) (ξ : ℝ), ↑x * wigner ψ x ξ = ∫ (x : ℝ), ↑x * ↑‖ψ x‖ ^ 2

          The position expectation is the first x-moment of W_ψ: ∫∫ x W_ψ = ∫ x |ψ(x)|².

          theorem WignerFunction.integral_integral_mul_wigner_right (ψ : SchwartzMap ℝ ℂ) :
          ∫ (ξ : ℝ) (x : ℝ), ↑ξ * wigner ψ x ξ = ∫ (ξ : ℝ), ↑ξ * ↑‖(FourierTransform.fourier ψ) ξ‖ ^ 2

          The momentum expectation is the first ξ-moment of W_ψ: ∫∫ ξ W_ψ = ∫ ξ |𝓕ψ(ξ)|² (the momentum is p = 2πξ).

          Positivity of the Gaussian, negativity of odd states #

          theorem WignerFunction.re_ofReal_pos {σ : ℝ} (hσ : 0 < σ) :
          0 < (↑σ).re
          theorem WignerFunction.wignerKernel_gaussianS {σ : ℝ} (hσ : 0 < σ) (x : ℝ) :

          The Wigner kernel of the Gaussian e^{−πσx²} is e^{−2πσx²} · e^{−π(σ/2)y²}.

          theorem WignerFunction.wigner_gaussianS {σ : ℝ} (hσ : 0 < σ) (x ξ : ℝ) :
          wigner (SchrodingerGroup.gaussianS ↑σ ⋯) x ξ = ↑(√(2 / σ) * Real.exp (-(2 * Real.pi * σ * x ^ 2)) * Real.exp (-(2 * Real.pi * ξ ^ 2 / σ)))

          ★ The Wigner function of the Gaussian g_σ = e^{−πσx²} (σ > 0) is the positive Gaussian √(2/σ) e^{−2πσx²} e^{−2πξ²/σ}.

          theorem WignerFunction.wigner_gaussianS_pos {σ : ℝ} (hσ : 0 < σ) (x ξ : ℝ) :
          0 < (wigner (SchrodingerGroup.gaussianS ↑σ ⋯) x ξ).re

          ★ The Wigner function of the Gaussian is positive everywhere.

          theorem WignerFunction.wigner_zero_zero_of_odd (ψ : SchwartzMap ℝ ℂ) (hψ : ∀ (y : ℝ), ψ (-y) = -ψ y) :
          wigner ψ 0 0 = -(2 * ∫ (y : ℝ), ↑(‖ψ y‖ ^ 2))

          ★ Negativity at the origin for odd states: if ψ(−y) = −ψ(y) then W_ψ(0, 0) = −2 ∫ |ψ|².

          theorem WignerFunction.integral_norm_sq_pos (ψ : SchwartzMap ℝ ℂ) (hψ : ψ ≠ 0) :
          0 < ∫ (y : ℝ), ‖ψ y‖ ^ 2

          A nonzero Schwartz function has positive L² mass.

          theorem WignerFunction.re_wigner_zero_zero_neg (ψ : SchwartzMap ℝ ℂ) (hψ : ∀ (y : ℝ), ψ (-y) = -ψ y) (h0 : ψ ≠ 0) :
          (wigner ψ 0 0).re < 0

          ★ Negativity is a witness of non-classicality: an odd nonzero ψ has W_ψ(0, 0) < 0.

          The free evolution is the classical free flow #

          ★★ Liouville transport for the free Schrödinger group: W_{U₀(t)ψ}(x, ξ) = W_ψ(x − 2πtξ, ξ) — in the momentum p = 2πξ, W_t(x, p) = W_0(x − pt, p), the classical free flow, exact (the quadratic Hamiltonian has no ℏ² Moyal correction).