Imports
/- Copyright (c) 2026 Robert Sneiderman. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Robert Sneiderman -/ module public import PhyslibAlpha.SpaceAndTime.Space.Surfaces.Ring public import Physlib.SpaceAndTime.Space.Integrals.Basic public import Mathlib.MeasureTheory.Integral.Prod

Spherical cylinder surface in Space 3

The spherical cylinder is the unit circular shell in Space 2 extruded along the third coordinate.

@[expose] public section

A. The definition of the spherical cylinder surface

The map embedding the unit circular shell extruded along the axis into Space 3.

def sphericalCylinder : Metric.sphere (0 : Space 2) 1 × Space 3 := fun x => (slice 2).symm (x.2, sphericalShell 2 x.1)
lemma sphericalCylinder_eq : sphericalCylinder = (slice 2).symm (fun x => (x.2, sphericalShell 2 x.1)) := rfllemma sphericalCylinder_injective : Function.Injective sphericalCylinder := Function.Injective sphericalCylinder x:(Metric.sphere 0 1) × y:(Metric.sphere 0 1) × h:sphericalCylinder x = sphericalCylinder yx = y x:(Metric.sphere 0 1) × y:(Metric.sphere 0 1) × h:sphericalCylinder x = sphericalCylinder yh':(slice 2) (sphericalCylinder x) = (slice 2) (sphericalCylinder y)x = y x:(Metric.sphere 0 1) × y:(Metric.sphere 0 1) × h:sphericalCylinder x = sphericalCylinder yh':x.2 = y.2 sphericalShell 2 x.1 = sphericalShell 2 y.1x = y All goals completed! 🐙@[fun_prop] lemma sphericalCylinder_continuous : Continuous sphericalCylinder := Continuous sphericalCylinder Continuous (slice 2).symmContinuous fun x => (x.2, sphericalShell 2 x.1) Continuous (slice 2).symm All goals completed! 🐙 Continuous fun x => (x.2, sphericalShell 2 x.1) All goals completed! 🐙lemma sphericalCylinder_measurableEmbedding : MeasurableEmbedding sphericalCylinder := Continuous.measurableEmbedding sphericalCylinder_continuous sphericalCylinder_injectivex:(Metric.sphere 0 1) × (x.2 ^ 2 + 1 ^ 2) = (x.2 ^ 2 + 1) All goals completed! 🐙

B. The measure associated with the spherical cylinder

The measure on Space 3 corresponding to integration over a spherical cylinder.

def sphericalCylinderMeasure : Measure (Space 3) := MeasureTheory.Measure.map sphericalCylinder ((MeasureTheory.Measure.toSphere volume).prod (volume (α := )))
𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × (1 + sphericalCylinder x) ^ (-n) (1 + x.2) ^ (-n) 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × 0 < 1 + x.2𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × 1 + x.2 1 + sphericalCylinder x𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × -n 0 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × 0 < 1 + x.2 All goals completed! 🐙 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × 1 + x.2 1 + sphericalCylinder x 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × 1 + x.2 1 + (x.2 ^ 2 + 1) All goals completed! 🐙 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace Fn:hn:Integrable (fun x => (1 + x) ^ (-n)) volumex:(Metric.sphere 0 1) × -n 0 All goals completed! 🐙𝕜:TypeE:TypeF:TypeF':Typeinst✝⁵:RCLike 𝕜inst✝⁴:NormedAddCommGroup Einst✝³:NormedAddCommGroup Finst✝²:NormedAddCommGroup F'inst✝¹:NormedSpace Einst✝:NormedSpace FSFinite (Measure.map sphericalCylinder (volume.toSphere.prod volume)) All goals completed! 🐙

C. The distribution associated with the spherical cylinder

The distribution on Space 3 corresponding to integration over a spherical cylinder.

def sphericalCylinderDist : (Space 3) →d[] := SchwartzMap.integralCLM sphericalCylinderMeasure
All goals completed! 🐙All goals completed! 🐙