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 y⊢ x = 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.1⊢ x = y All goals completed! 🐙@[fun_prop] lemma sphericalCylinder_continuous : Continuous sphericalCylinder := ⊢ Continuous sphericalCylinder ⊢ Continuous ⇑(slice 2).symm⊢ Continuous 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 ℝ F⊢ SFinite (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! 🐙