Imports
/- Copyright (c) 2025 Joseph Tooby-Smith. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Joseph Tooby-Smith -/ module public import Physlib.QuantumMechanics.HilbertSpaces.OneDimension.PositionStates public import Physlib.QuantumMechanics.Operators.OneDimension.Unbounded public import Physlib.Mathematics.Distribution.PowMul public import Physlib.QuantumMechanics.HilbertSpaces.OneDimension.SchwartzSubmodule

Position operator

In this module we define:

    The position operator on functions ℝ → ℂ

    The position operator on Schwartz maps as an unbounded operator on the Hilbert space.

We show that position wavefunctions are generalized eigenvectors of the position operator.

@[expose] public section

The position operator on functions ℝ → ℂ

The position operator is defined as the linear map from ℝ → ℂ to ℝ → ℂ taking ψ to x * ψ.

def positionOperator : ( ) →ₗ[] where toFun ψ := fun x x * ψ x map_add' ψ1 ψ2 := ψ1: ψ2: (fun x => x * (ψ1 + ψ2) x) = (fun x => x * ψ1 x) + fun x => x * ψ2 x ψ1: ψ2: x:x * (ψ1 + ψ2) x = ((fun x => x * ψ1 x) + fun x => x * ψ2 x) x ψ1: ψ2: x:x * (ψ1 x + ψ2 x) = x * ψ1 x + x * ψ2 x All goals completed! 🐙 map_smul' a ψ1 := a:ψ1: (fun x => x * (a ψ1) x) = (RingHom.id ) a fun x => x * ψ1 x a:ψ1: x:x * (a ψ1) x = ((RingHom.id ) a fun x => x * ψ1 x) x a:ψ1: x:x * (a * ψ1 x) = a * (x * ψ1 x) All goals completed! 🐙

The position operator on Schwartz maps

The position operator on the Schwartz maps is defined as the linear map from 𝓢(ℝ, ℂ) to itself, such that ψ is taken to fun x => x * ψ x.

def positionOperatorSchwartz : 𝓢(, ) →L[] 𝓢(, ) := Distribution.powOneMul
lemma positionOperatorSchwartz_apply_fun (ψ : 𝓢(, )) : (positionOperatorSchwartz ψ) = fun x => x * ψ x := ψ:𝓢(, )(positionOperatorSchwartz ψ) = fun x => x * ψ x ψ:𝓢(, )((Distribution.powOneMul ) ψ) = fun x => x * ψ x All goals completed! 🐙@[simp] lemma positionOperatorSchwartz_apply (ψ : 𝓢(, )) (x : ) : (positionOperatorSchwartz ψ) x = x * ψ x := ψ:𝓢(, )x:(positionOperatorSchwartz ψ) x = x * ψ x ψ:𝓢(, )x:((Distribution.powOneMul ) ψ) x = x * ψ x All goals completed! 🐙

The unbounded position operator, whose domain is Schwartz maps.

Generalized eigenvectors of the momentum operator

x: (ψ : 𝓢(, )), (positionState x) (positionOperatorSchwartz ψ) = x (positionState x) ψ x:ψ:𝓢(, )(positionState x) (positionOperatorSchwartz ψ) = x (positionState x) ψ All goals completed! 🐙

Position operator is symmetric

ψ1:𝓢(, )ψ2:𝓢(, ) (x : ), (starRingEnd ) ((positionOperatorSchwartz ψ1) x) * ψ2 x = (x : ), (starRingEnd ) (ψ1 x) * (positionOperatorSchwartz ψ2) x ψ1:𝓢(, )ψ2:𝓢(, )(fun x => (starRingEnd ) ((positionOperatorSchwartz ψ1) x) * ψ2 x) = fun x => (starRingEnd ) (ψ1 x) * (positionOperatorSchwartz ψ2) x ψ1:𝓢(, )ψ2:𝓢(, )x:(starRingEnd ) ((positionOperatorSchwartz ψ1) x) * ψ2 x = (starRingEnd ) (ψ1 x) * (positionOperatorSchwartz ψ2) x ψ1:𝓢(, )ψ2:𝓢(, )x:x * (starRingEnd ) (ψ1 x) * ψ2 x = (starRingEnd ) (ψ1 x) * (x * ψ2 x) All goals completed! 🐙