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.Integrals.Basic

The radial angular measure on Space

i. Overview

The normal measure on Space d is r^(d-1) dr dΩ in spherical coordinates, where is the angular measure on the unit sphere. The radial angular measure is the measure dr dΩ, cancelling the radius contribution from the measure in spherical coordinates.

This file is equivalent to invPowMeasure, which will slowly be deprecated.

ii. Key results

    radialAngularMeasure: The radial angular measure on Space d.

iii. Table of contents

    A. The definition of the radial angular measure

      A.1. Basic equalities

    B. Integrals with respect to radialAngularMeasure

    C. The radialAngularMeasure on balls

    D. Integrability conditions

    E. HasTemperateGrowth of measures

      E.1. Integrability of powers

      E.2. radialAngularMeasure has temperate growth

iv. References

@[expose] public section

A. The definition of the radial angular measure

The measure on Space d weighted by 1 / ‖x‖ ^ (d - 1).

def radialAngularMeasure {d : } : Measure (Space d) := volume.withDensity (fun x : Space d => ENNReal.ofReal (1 / x ^ (d - 1)))

A.1. Basic equalities

lemma radialAngularMeasure_eq_volume_withDensity {d : } : radialAngularMeasure = volume.withDensity (fun x : Space d => ENNReal.ofReal (1 / x ^ (d - 1))) := d:radialAngularMeasure = volume.withDensity fun x => ENNReal.ofReal (1 / x ^ (d - 1)) All goals completed! 🐙@[simp] lemma radialAngularMeasure_zero_eq_volume : radialAngularMeasure (d := 0) = volume := radialAngularMeasure = volume All goals completed! 🐙

A.2. SFinite property

instance (d : ) : SFinite (radialAngularMeasure (d := d)) := 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fd:SFinite radialAngularMeasure 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fd:SFinite (volume.withDensity fun x => ENNReal.ofReal (1 / x ^ (d - 1))) All goals completed! 🐙

B. Integrals with respect to radialAngularMeasure

All goals completed! 🐙d:f:Space d ENNRealhf:Measurable f∫⁻ (a : Space d), ((fun x => ENNReal.ofReal (1 / x ^ (d - 1))) * f) a volume = ∫⁻ (x : Space d), ENNReal.ofReal (1 / x ^ (d - 1)) * f xd:f:Space d ENNRealhf:Measurable fMeasurable fun x => ENNReal.ofReal (1 / x ^ (d - 1))d:f:Space d ENNRealhf:Measurable fMeasurable f d:f:Space d ENNRealhf:Measurable fMeasurable fun x => ENNReal.ofReal (1 / x ^ (d - 1))d:f:Space d ENNRealhf:Measurable fMeasurable f all_goals All goals completed! 🐙d:inst✝:NeZero df:Space d ENNRealhf:Measurable fMeasurable fun x => ENNReal.ofReal (1 / x ^ (d - 1)) * f xd:inst✝:NeZero df:Space d ENNRealhf:Measurable fMeasurable f all_goals All goals completed! 🐙

C. The radialAngularMeasure on balls

All goals completed! 🐙lemma radialAngularMeasure_real_closedBall (r : ) (hr : 0 < r) : radialAngularMeasure.real (Metric.closedBall (0 : Space 3) r) = 4 * π * r := r:hr:0 < rradialAngularMeasure.real (Metric.closedBall 0 r) = 4 * π * r r:hr:0 < r(radialAngularMeasure (Metric.closedBall 0 r)).toReal = 4 * π * r r:hr:0 < r0 4 * π * r All goals completed! 🐙

D. Integrability conditions

All goals completed! 🐙F:Typeinst✝¹:NormedAddCommGroup Fd:inst✝:NeZero df:Space d Fhae:StronglyMeasurable fhf:Integrable (fun x => f (x.2 x.1)) (volume.toSphere.prod (Measure.volumeIoiPow 0))HasFiniteIntegral (fun x => f (x.2 x.1)) (volume.toSphere.prod (Measure.volumeIoiPow 0)) All goals completed! 🐙

E. HasTemperateGrowth of measures

E.1. Integrability of powers

All goals completed! 🐙d:dm1:x:(Metric.sphere 0 1)y:(Set.Ioi 0)hy:0 < y(1 + y) ^ (-(dm1 + 2)) = (1 + y) ^ (-1 + (-1 + -dm1)) d:dm1:x:(Metric.sphere 0 1)y:(Set.Ioi 0)hy:0 < y-(dm1 + 2) = -1 + (-1 + -dm1) All goals completed! 🐙

E.2. radialAngularMeasure has temperate growth

instance (d : ) : Measure.HasTemperateGrowth (radialAngularMeasure (d := d)) where exists_integrable := 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fd: n, Integrable (fun x => (1 + x) ^ (-n)) radialAngularMeasure 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fd:Integrable (fun x => (1 + x) ^ (-(d + 1))) radialAngularMeasure All goals completed! 🐙