Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 39 additions & 1 deletion Physlib/QuantumMechanics/Operators/Momentum.lean
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/-
Copyright (c) 2026 Gregory J. Loges. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Gregory J. Loges
Authors: Adam Bornemann, Gregory J. Loges
-/
module

Expand Down Expand Up @@ -33,6 +33,7 @@ Notation:

- A. Momentum vector operator
- B. Unbounded momentum vector operator
- C. Fourier conjugate of the momentum operator

## iv. References

Expand All @@ -49,6 +50,8 @@ noncomputable section
open Constants Complex
open Space
open ContDiff SchwartzMap
open LineDeriv
open scoped FourierTransform

variable {d : β„•} (i : Fin d)

Expand Down Expand Up @@ -156,5 +159,40 @@ lemma momentumSqOperator_domain_eq : momentumSqOperator.domain = SchwartzSubmodu
rw [← iInf_const (a := SchwartzSubmodule d) (ΞΉ := Fin d)]
congr

/-!
## C. Fourier conjugate of the momentum operator
-/

/-- The momentum operator is the scalar `-iℏ` times the line derivative in the direction of the
`i`-th basis vector. -/
lemma momentumCLM_eq_smul_lineDerivOp (i : Fin d) (ψ : 𝓒(Space d, β„‚)) :
𝐩 i ψ = (- Complex.I * ℏ) β€’ (βˆ‚_{Space.basis i} ψ : 𝓒(Space d, β„‚)) := by
ext x
simp [momentumCLM_apply, Space.deriv_eq, lineDerivOp_apply_eq_fderiv]

/-- The Fourier multiplier of the momentum operator `𝐩 i = -iβ„βˆ‚α΅’` is real-valued (viewed in `β„‚`). -/
def momentumSymbol (i : Fin d) : Space d β†’ β„‚ :=
fun ΞΎ => ((2 * Real.pi * (ℏ : ℝ) : ℝ) : β„‚) * (Space.coordCLM i ΞΎ : ℝ)

/-- The momentum symbol has temperate growth (it is a real-linear coordinate function). -/
@[fun_prop] lemma momentumSymbol_hasTemperateGrowth (i : Fin d) :
(momentumSymbol i).HasTemperateGrowth := by
unfold momentumSymbol; fun_prop

/-- The Fourier transform conjugates the momentum operator `𝐩 i = -iβ„βˆ‚α΅’` into multiplication by the
real symbol `2πℏ·ξᡒ`: `𝓕 (𝐩 i ψ) = momentumSymbol i Β· 𝓕 ψ`. -/
lemma fourier_momentumCLM_eq (i : Fin d) (ψ : 𝓒(Space d, β„‚)) :
𝓕 (𝐩 i ψ) = SchwartzMap.smulLeftCLM β„‚ (momentumSymbol i) (𝓕 ψ) := by
have hscalar : (- Complex.I * ℏ) * (2 * Real.pi * Complex.I)
= ((2 * Real.pi * (ℏ : ℝ) : ℝ) : β„‚) := by
push_cast
linear_combination -(2 * Real.pi * ℏ : β„‚) * Complex.I_sq
rw [momentumCLM_eq_smul_lineDerivOp, FourierSMul.fourier_smul, fourier_lineDerivOp_eq, smul_smul,
hscalar]
ext x
rw [_root_.smul_apply, SchwartzMap.smulLeftCLM_apply_apply (by fun_prop),
SchwartzMap.smulLeftCLM_apply_apply (momentumSymbol_hasTemperateGrowth i)]
simp [momentumSymbol, Space.coordCLM_apply, Space.coord, mul_comm, mul_assoc]

end
end QuantumMechanics
Loading