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.SchwartzSubmodule public import Physlib.QuantumMechanics.Operators.OneDimension.Unbounded public import Mathlib.MeasureTheory.Measure.Haar.Unique public import Mathlib.Analysis.Calculus.ContDiff.Operations

Parity operator

@[expose] public section

The parity operator on functions

The parity operator is defined as linear map from ℝ → ℂ to itself, such that ψ is taken to fun x => ψ (-x).

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

The parity operator on Schwartz maps

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

n✝:x:n:0 x 1 + |x|n✝:x:n:n + 1 0 n✝:x:n:0 1 + |x|n✝:x:n:n + 1 0 n✝:x:n:0 1n✝:x:n:0 |x|n✝:x:n:n + 1 0 n✝:x:n:0 1 All goals completed! 🐙 n✝:x:n:0 |x| All goals completed! 🐙 All goals completed! 🐙 k C, (x : ), x C * (1 + -x) ^ k k C, (x : ), |x| C * (1 + |x|) ^ k (x : ), |x| 1 * (1 + |x|) ^ 1 x:|x| 1 * (1 + |x|) ^ 1 All goals completed! 🐙

The unbounded parity operator, whose domain is Schwartz maps.

@[simp] lemma parityOperatorSchwartz_parityOperatorSchwartz (ψ : 𝓢(, )) : parityOperatorSchwartz (parityOperatorSchwartz ψ) = ψ := ψ:𝓢(, )parityOperatorSchwartz (parityOperatorSchwartz ψ) = ψ ψ:𝓢(, )x:(parityOperatorSchwartz (parityOperatorSchwartz ψ)) x = ψ x All goals completed! 🐙

Parity operator is symmetric

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