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.Basic public import Mathlib.Analysis.SpecialFunctions.Gaussian.GaussianIntegral public import Physlib.Meta.TODO.Basic

Gaussians and the hilbert space

TODO "Generalize Gaussian states to d dimensions and SpaceDHilbertSpace using InnerProductSpace.gaussian from Physlib/Mathematics/InnerProductSpace/Gaussian and SpaceDHilbertSpace.schwartzIncl. Some of the results in this file have become automatic given InnerProductSpace.gaussian is a Schwartz map, e.g. gaussian_integrable and gaussian_memHS (via schwartzIncl), and some hold more generally for any Schwartz map or member of SchwartzSubmodule, e.g. abs_mul_gaussian_integrable."@[expose] public section

Gaussians

lemma gaussian_integrable {b : } (c : ) (hb : 0 < b) : MeasureTheory.Integrable (fun x => (Real.exp (- b * (x - c)^ 2) : )) := MeasureTheory.Integrable.ofReal (Integrable.comp_sub_right (f := (fun x => Real.exp (- b * x ^ 2))) (integrable_exp_neg_mul_sq hb) ..)lemma gaussian_aestronglyMeasurable {b : } (c : ) (hb : 0 < b) : AEStronglyMeasurable (fun x => (Real.exp (- b * (x - c) ^2) : )) volume := MeasureTheory.Integrable.aestronglyMeasurable (gaussian_integrable c hb)b:c:hb:0 < bh1:(fun x => Real.exp (-(b * ((x - c) ^ 2).re)) ^ 2) = fun y => (fun x => Real.exp (-(2 * b) * x ^ 2)) (y - c)Integrable (fun y => (fun x => Real.exp (-(2 * b) * x ^ 2)) (y - c)) volume b:c:hb:0 < bh1:(fun x => Real.exp (-(b * ((x - c) ^ 2).re)) ^ 2) = fun y => (fun x => Real.exp (-(2 * b) * x ^ 2)) (y - c)Integrable (fun x => Real.exp (-(2 * b) * x ^ 2)) volume b:c:hb:0 < bh1:(fun x => Real.exp (-(b * ((x - c) ^ 2).re)) ^ 2) = fun y => (fun x => Real.exp (-(2 * b) * x ^ 2)) (y - c)0 < 2 * b All goals completed! 🐙b:c:hb:0 < bh1:(fun x => Real.exp (c * x) * Real.exp (-b * x ^ 2)) = fun x => Real.exp (c ^ 2 / (4 * b)) * Real.exp (-b * (x - c / (2 * b)) ^ 2)Integrable (fun x => Real.exp (c ^ 2 / (4 * b)) * Real.exp (-b * (x - c / (2 * b)) ^ 2)) volume b:c:hb:0 < bh1:(fun x => Real.exp (c * x) * Real.exp (-b * x ^ 2)) = fun x => Real.exp (c ^ 2 / (4 * b)) * Real.exp (-b * (x - c / (2 * b)) ^ 2)Integrable (fun x => Real.exp (-b * (x - c / (2 * b)) ^ 2)) volume b:c:hb:0 < bh1:(fun x => Real.exp (c * x) * Real.exp (-b * x ^ 2)) = fun x => Real.exp (c ^ 2 / (4 * b)) * Real.exp (-b * (x - c / (2 * b)) ^ 2)Integrable (fun x => Real.exp (-b * x ^ 2)) volume All goals completed! 🐙All goals completed! 🐙f: hf:MemHS fb:c:hb:0 < bg:HilbertSpace := mk x:(Real.exp (-b * (x - c) ^ 2)) = Complex.exp (-(b * (x - c) ^ 2)) All goals completed! 🐙f: hf:MemHS fb:c:hb:0 < bx:Real.exp (-(b * (x - c) ^ 2)) Real.exp 0 f: hf:MemHS fb:c:hb:0 < bx:0 b * (x - c) ^ 2 f: hf:MemHS fb:c:hb:0 < bx:0 bf: hf:MemHS fb:c:hb:0 < bx:0 (x - c) ^ 2 f: hf:MemHS fb:c:hb:0 < bx:0 b All goals completed! 🐙 f: hf:MemHS fb:c:hb:0 < bx:0 (x - c) ^ 2 All goals completed! 🐙f: hf:MemHS fb:c:hb:0 < bh1:(fun x => f x * Real.exp (-b * (x - c) ^ 2)) = fun x => f x * (Real.exp (-b * (x - c) ^ 2))Integrable (fun x => f x * (Real.exp (-b * (x - c) ^ 2))) volume All goals completed! 🐙f: hf:MemHS fb:c:hb:0 < bh1:(fun x => Real.exp (c * x) * f x * Real.exp (-b * x ^ 2)) = fun x => Real.exp (c ^ 2 / (4 * b)) * (f x * Real.exp (-b * (x - c / (2 * b)) ^ 2))Integrable (fun x => Real.exp (c ^ 2 / (4 * b)) * (f x * Real.exp (-b * (x - c / (2 * b)) ^ 2))) volume All goals completed! 🐙All goals completed! 🐙