diff --git a/PhysLean/QuantumMechanics/DDimensions/Operators/Momentum.lean b/PhysLean/QuantumMechanics/DDimensions/Operators/Momentum.lean index 2f5ad1847..68e716551 100644 --- a/PhysLean/QuantumMechanics/DDimensions/Operators/Momentum.lean +++ b/PhysLean/QuantumMechanics/DDimensions/Operators/Momentum.lean @@ -9,6 +9,7 @@ public import PhysLean.QuantumMechanics.DDimensions.Operators.Unbounded public import PhysLean.QuantumMechanics.DDimensions.SpaceDHilbertSpace.SchwartzSubmodule public import PhysLean.QuantumMechanics.PlanckConstant public import PhysLean.SpaceAndTime.Space.Derivatives.Basic +import Mathlib.Analysis.Calculus.FDeriv.Star /-! # Momentum operators @@ -97,31 +98,42 @@ lemma momentumOperatorSqr_apply (ฯˆ : ๐“ข(Space d, โ„‚)) (x : Space d) : -/ -open SpaceDHilbertSpace +open SpaceDHilbertSpace MeasureTheory /-- The momentum operators defined on the Schwartz submodule. -/ def momentumOperatorSchwartz : schwartzSubmodule d โ†’โ‚—[โ„‚] schwartzSubmodule d := schwartzEquiv.toLinearMap โˆ˜โ‚— ๐ฉ[i].toLinearMap โˆ˜โ‚— schwartzEquiv.symm.toLinearMap -@[sorryful] -lemma momentumOperatorSchwartz_isSymmetric : (momentumOperatorSchwartz i).IsSymmetric := by +lemma momentumOperatorSchwartz_isSymmetric : + (momentumOperatorSchwartz i).IsSymmetric := by intro ฯˆ ฯˆ' obtain โŸจf, rflโŸฉ := schwartzEquiv.surjective ฯˆ obtain โŸจf', rflโŸฉ := schwartzEquiv.surjective ฯˆ' - unfold momentumOperatorSchwartz - simp only [LinearMap.coe_comp, LinearEquiv.coe_coe, ContinuousLinearMap.coe_coe, - Function.comp_apply, LinearEquiv.symm_apply_apply, schwartzEquiv_inner, momentumOperator_apply, - neg_mul, map_neg, map_mul, Complex.conj_I, Complex.conj_ofReal, neg_neg, mul_neg] - -- Need integration by parts and `starRingEnd โˆ‚[i] = โˆ‚[i] starRingEnd`: - -- โŠข โˆซ (x : Space d), Complex.I * โ†‘โ†‘โ„ * (starRingEnd โ„‚) (Space.deriv i (โ‡‘f) x) * f' x = - -- โˆซ (x : Space d), -((starRingEnd โ„‚) (f x) * (Complex.I * โ†‘โ†‘โ„ * Space.deriv i (โ‡‘f') x)) - sorry - -/-- The symmetric momentum unbounded operators with domain the Schwartz submodule - of the Hilbert space. -/ -@[sorryful] -def momentumUnboundedOperator : UnboundedOperator (SpaceDHilbertSpace d) (SpaceDHilbertSpace d) := - UnboundedOperator.ofSymmetric (schwartzSubmodule_dense d) (momentumOperatorSchwartz_isSymmetric i) + simp only [momentumOperatorSchwartz, LinearMap.coe_comp, LinearEquiv.coe_coe, + ContinuousLinearMap.coe_coe, Function.comp_apply, LinearEquiv.symm_apply_apply, + schwartzEquiv_inner, momentumOperator_apply, neg_mul, map_neg, map_mul, Complex.conj_I, + Complex.conj_ofReal, neg_neg, mul_neg, integral_neg] + field_simp + simp only [Space.deriv_eq, mul_assoc, integral_const_mul, neg_mul_eq_mul_neg, starRingEnd_apply] + congr 2 + rw [integral_mul_fderiv_eq_neg_fderiv_mul_of_integrable _ _ _ (by fun_prop) (by fun_prop)] + ยท simp only [neg_neg, fderiv_star] + rfl + ยท simp only [fderiv_star] + exact .mul_of_top_left (((starL' โ„ : โ„‚ โ‰ƒL[โ„] โ„‚).integrable_comp_iff).mpr + ((f.fderivCLM โ„‚ _ โ„‚).evalCLM โ„‚ _ โ„‚ (basis i)).integrable) + (SchwartzMap.memLp_top f' volume) + ยท exact .mul_of_top_left (((starL' โ„ : โ„‚ โ‰ƒL[โ„] โ„‚).integrable_comp_iff).mpr f.integrable) + (((f'.fderivCLM โ„‚ _ โ„‚).evalCLM โ„‚ _ โ„‚ (basis i)).memLp_top volume) + ยท exact .mul_of_top_left (((starL' โ„ : โ„‚ โ‰ƒL[โ„] โ„‚).integrable_comp_iff).mpr f.integrable) + (f'.memLp_top volume) + +/-- The symmetric momentum unbounded operators with domain the Schwartz + submodule of the Hilbert space. -/ +def momentumUnboundedOperator : + UnboundedOperator (SpaceDHilbertSpace d) (SpaceDHilbertSpace d) := + UnboundedOperator.ofSymmetric (schwartzSubmodule_dense d) + (momentumOperatorSchwartz_isSymmetric i) end end QuantumMechanics