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.SphericalShell public import Physlib.SpaceAndTime.Space.Integrals.Basic public import Mathlib.MeasureTheory.Measure.Lebesgue.EqHaar

Line surfaces in Space d

@[expose] public section

A. The definition of the line surface

The coordinate line embedded in Space d.

def line (d : ℕ) [NeZero d] : ℝ → Space d := fun r => r • basis (0 : Fin d)
lemma line_eq_smul_basis (d : ℕ) [NeZero d] : line d = fun r => r • basis (0 : Fin d) := rfllemma line_injective (d : ℕ) [NeZero d] : Function.Injective (line d) := d:ℕinst✝:NeZero d⊢ Function.Injective (line d) d:ℕinst✝:NeZero dx:ℝy:ℝh:line d x = line d y⊢ x = y d:ℕinst✝:NeZero dx:ℝy:ℝh:line d x = line d yh0:(line d x).val 0 = (line d y).val 0⊢ x = y All goals completed! 🐙d:ℕinst✝:NeZero d⊢ Continuous fun r => r • basis 0 All goals completed! 🐙lemma line_measurableEmbedding (d : ℕ) [NeZero d] : MeasurableEmbedding (line d) := Continuous.measurableEmbedding (line_continuous d) (line_injective d)d:ℕinst✝:NeZero dr:ℝ⊢ ‖r‖ * ‖basis 0‖ = ‖r‖ All goals completed! 🐙

B. The measure associated with the line

The measure on Space d corresponding to integration along a coordinate line.

def lineMeasure (d : ℕ) [NeZero d] : Measure (Space d) := MeasureTheory.Measure.map (line d) volume
𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dr:ℕhr:Integrable (fun x => (1 + ‖x‖) ^ (-↑r)) volume⊢ Integrable ((fun x => (1 + ‖x‖) ^ (-↑r)) ∘ line d) volume𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dr:ℕhr:Integrable (fun x => (1 + ‖x‖) ^ (-↑r)) volume⊢ MeasurableEmbedding (line d) 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dr:ℕhr:Integrable (fun x => (1 + ‖x‖) ^ (-↑r)) volume⊢ Integrable ((fun x => (1 + ‖x‖) ^ (-↑r)) ∘ line d) volume 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dr:ℕhr:Integrable (fun x => (1 + ‖x‖) ^ (-↑r)) volume⊢ (fun x => (1 + ‖x‖) ^ (-↑r)) ∘ line d = fun x => (1 + ‖x‖) ^ (-↑r) 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dr:ℕhr:Integrable (fun x => (1 + ‖x‖) ^ (-↑r)) volumex:ℝ⊢ ((fun x => (1 + ‖x‖) ^ (-↑r)) ∘ line d) x = (1 + ‖x‖) ^ (-↑r) All goals completed! 🐙 𝕜:TypeE:TypeF:TypeF':Typeinst✝⁶:RCLike 𝕜inst✝⁵:NormedAddCommGroup Einst✝⁴:NormedAddCommGroup Finst✝³:NormedAddCommGroup F'inst✝²:NormedSpace ℝ Einst✝¹:NormedSpace ℝ Fd:ℕinst✝:NeZero dr:ℕhr:Integrable (fun x => (1 + ‖x‖) ^ (-↑r)) volume⊢ MeasurableEmbedding (line d) All goals completed! 🐙

C. The distribution associated with the line

The distribution on Space d corresponding to integration along a coordinate line. One can roughly think of this distribution as taking a test function f to its integral against a mass, charge or current density concentrated on a line.

def lineDist (d : ℕ) [NeZero d] : (Space d) →d[ℝ] ℝ := SchwartzMap.integralCLM ℝ (lineMeasure d)
All goals completed! 🐙All goals completed! 🐙

D. The line has ambient volume zero

The linear subspace spanned by the coordinate line in Space d.

def lineSubmodule (d : ℕ) [NeZero d] : Submodule ℝ (Space d) := ℝ ∙ basis (0 : Fin d)
d:ℕinst✝:NeZero dr:ℝ⊢ (fun r => r • basis 0) r ∈ lineSubmodule d All goals completed! 🐙lemma range_line_subset_lineSubmodule (d : ℕ) [NeZero d] : Set.range (line d) ⊆ (lineSubmodule d : Set (Space d)) := d:ℕinst✝:NeZero d⊢ Set.range (line d) ⊆ ↑(lineSubmodule d) d:ℕinst✝:NeZero dr:ℝ⊢ line d r ∈ ↑(lineSubmodule d) All goals completed! 🐙d:ℕinst✝:NeZero dhd:2 ≤ dhtop:lineSubmodule d = ⊤hbasis:basis 1 ∈ lineSubmodule dc:ℝhc:c • basis 0 = basis 1hcoord:(c • basis 0).val 1 = (basis 1).val 1hd1:d ≠ 1⊢ False All goals completed! 🐙d:ℕinst✝:NeZero dhd:2 ≤ d⊢ basis.toBasis.addHaar ↑(lineSubmodule d) = 0 All goals completed! 🐙