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.SpaceAndTime.Space.IsDistBounded public import Physlib.SpaceAndTime.Space.Derivatives.Basic public import Mathlib.MeasureTheory.SpecificCodomains.WithLp public import Physlib.Mathematics.Distribution.Basic

Distributions from functions on space

i. Overview

In this module we define distributions on space constructed from functions f : Space d → F satisfying the condition IsDistBounded f.

This gives a convenient way to construct distributions from functions, without needing to reference the underlying Schwartz maps.

ii. Key results

    distOfFunction f hf : The distribution on space constructed from the function f : Space d → F satisfying the IsDistBounded f condition.

iii. Table of contents

    A. Definition of a distribution from a function

    B. Linarity properties of getting distributions from functions

    C. Properties related to inner products

    D. Derivatives

    E. Components

iv. References

@[expose] public section

A. Definition of a distribution from a function

A distribution Space d →d[ℝ] F from a function f : Space d → F which satisfies the IsDistBounded f condition.

All goals completed! 🐙
lemma distOfFunction_apply {d : } (f : Space d F) (hf : IsDistBounded f) (η : 𝓢(Space d, )) : distOfFunction f hf η = x, η x f x := rfl

B. Linarity properties of getting distributions from functions

@[simp] lemma distOfFunction_zero_eq_zero {d : } : distOfFunction (fun _ : Space d => (0 : F)) (𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fd:IsDistBounded fun x => 0 All goals completed! 🐙) = 0 := F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:distOfFunction (fun x => 0) = 0 F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:η:𝓢(Space d, )(distOfFunction (fun x => 0) ) η = 0 η All goals completed! 🐙All goals completed! 🐙All goals completed! 🐙lemma distOfFunction_mul_fun {d : } (f : Space d ) (hf : IsDistBounded f) (c : ) : distOfFunction (fun x => c * f x) (𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fd:f:Space d hf:IsDistBounded fc:IsDistBounded fun x => c * f x All goals completed! 🐙) = c distOfFunction f hf := d:f:Space d hf:IsDistBounded fc:distOfFunction (fun x => c * f x) = c distOfFunction f hf All goals completed! 🐙lemma distOfFunction_neg {d : } (f : Space d F) (hf : IsDistBounded (fun x => - f x)) : distOfFunction (fun x => - f x) hf = - distOfFunction f (𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fd:f:Space d Fhf:IsDistBounded fun x => -f xIsDistBounded f All goals completed! 🐙) := F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:f:Space d Fhf:IsDistBounded fun x => -f xdistOfFunction (fun x => -f x) hf = -distOfFunction f convert distOfFunction_smul_fun f (F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:f:Space d Fhf:IsDistBounded fun x => -f xIsDistBounded f All goals completed! 🐙) (-1) using 1 F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:f:Space d Fhf:IsDistBounded fun x => -f xdistOfFunction (fun x => -f x) hf = distOfFunction (fun x => -1 f x) All goals completed! 🐙 F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:f:Space d Fhf:IsDistBounded fun x => -f x-distOfFunction f = -1 distOfFunction f All goals completed! 🐙
d:n:f:Space d EuclideanSpace (Fin n)hf:IsDistBounded fη:𝓢(Space d, )y:EuclideanSpace (Fin n)Integrable (fun x => η x f x) volume All goals completed! 🐙

D. Derivatives

The distributional spatial derivative of the distribution associated to a differentiable function is the distribution associated to the corresponding pointwise spatial derivative.

F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, )Integrable (fun x => (fderiv (⇑η) x) (basis μ) f x) volumeF:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, )Integrable (fun x => η x (fderiv f x) (basis μ)) volumeF:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, )Integrable (fun x => η x f x) volumeF:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, ) x tsupport f, DifferentiableAt (⇑η) xF:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, ) x tsupport η, DifferentiableAt f x F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, )Integrable (fun x => (fderiv (⇑η) x) (basis μ) f x) volume All goals completed! 🐙 F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, )Integrable (fun x => η x (fderiv f x) (basis μ)) volume All goals completed! 🐙 F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, )Integrable (fun x => η x f x) volume All goals completed! 🐙 F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, ) x tsupport f, DifferentiableAt (⇑η) x All goals completed! 🐙 F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, ) x tsupport η, DifferentiableAt f x F:Typeinst✝¹:NormedAddCommGroup Finst✝:NormedSpace Fd:μ:Fin df:Space d Fhf:IsDistBounded fhf_deriv:IsDistBounded (deriv μ f)hf_diff:Differentiable fη:𝓢(Space d, )x:Space da✝:x tsupport ηDifferentiableAt f x All goals completed! 🐙

E. Components

d:n:f:Space d EuclideanSpace (Fin n)hf:IsDistBounded fη:𝓢(Space d, )i:Fin n (x : Space d), (η x f x).ofLp i = (x : Space d), η x * (f x).ofLp id:n:f:Space d EuclideanSpace (Fin n)hf:IsDistBounded fη:𝓢(Space d, )i:Fin n (i : Fin n), Integrable (fun x => (η x f x).ofLp i) volume d:n:f:Space d EuclideanSpace (Fin n)hf:IsDistBounded fη:𝓢(Space d, )i:Fin n (i : Fin n), Integrable (fun x => (η x f x).ofLp i) volume d:n:f:Space d EuclideanSpace (Fin n)hf:IsDistBounded fη:𝓢(Space d, )i✝:Fin ni:Fin nIntegrable (fun x => (η x f x).ofLp i) volume d:n:f:Space d EuclideanSpace (Fin n)hf:IsDistBounded fη:𝓢(Space d, )i✝:Fin ni:Fin nIntegrable (fun x => η x * (f x).ofLp i) volume All goals completed! 🐙d:n:f:Space d Lorentz.Vector nhf:IsDistBounded fη:𝓢(Space d, )i:Fin 1 Fin n (x : Space d), Lorentz.Vector.basis i, η x f x⟫_ = (x : Space d), η x * f x id:n:f:Space d Lorentz.Vector nhf:IsDistBounded fη:𝓢(Space d, )i:Fin 1 Fin nIntegrable (fun x => η x f x) volume d:n:f:Space d Lorentz.Vector nhf:IsDistBounded fη:𝓢(Space d, )i:Fin 1 Fin nIntegrable (fun x => η x f x) volume All goals completed! 🐙