Schwarzschild data: standard and Eddington–Finkelstein metrics, inverses, domains, coordinate maps
DefinitionAtlas_Schwarzschild_DefsUnits , signature , , coordinates indexed . Standard : , candidate inverse , domain . Eddington–Finkelstein family , ingoing (), outgoing (): , , , , other entries (from , matrix entry , not ); candidate inverse , , , (valid when ); domain , which contains when . Coordinate maps: (toEF) and (fromEF); Mathlib's is , so these are the usual on both sides of .
Data of rows 3–5 and relations R1–R2 (all real ; no sign assumed).
Formalization Note Definition bundle generated by skeleton subtraction from the source module Atlas.Schwarzschild.Defs; declarations: ExactVacuumAtlas.Schwarzschild.domEF, ExactVacuumAtlas.Schwarzschild.domStd, ExactVacuumAtlas.Schwarzschild.fromEF, ExactVacuumAtlas.Schwarzschild.gEF, ExactVacuumAtlas.Schwarzschild.gStd, ExactVacuumAtlas.Schwarzschild.giEF, ExactVacuumAtlas.Schwarzschild.giStd, ExactVacuumAtlas.Schwarzschild.toEF. No theorem is proved inside the bundle; it imports only Mathlib and other Definitions.Def_* bundles.
-- Generated by scripts/release01/gen_platform_tree.py (ATLAS-RELEASE-01) by skeleton subtraction from Atlas/Schwarzschild/Defs.lean
-- definition bundle: kept ExactVacuumAtlas.Schwarzschild.domEF, ExactVacuumAtlas.Schwarzschild.domStd, ExactVacuumAtlas.Schwarzschild.fromEF, ExactVacuumAtlas.Schwarzschild.gEF, ExactVacuumAtlas.Schwarzschild.gStd, ExactVacuumAtlas.Schwarzschild.giEF, ExactVacuumAtlas.Schwarzschild.giStd, ExactVacuumAtlas.Schwarzschild.toEF
import Mathlib
import Definitions.Def_Atlas_Core_Basic
/-!
# Schwarzschild: catalogue data (independent of any proof)
Coordinates are indexed `0, 1, 2, 3`; units `G = c = 1`, signature `(-,+,+,+)`, mass `M`.
Sources (local copies with SHA-256 in `archive/sources_atlas01/`):
* standard coordinates `(t, r, θ, φ)`: Müller–Grave, *Catalogue of Spacetimes*, arXiv:0904.4184v3,
eq. (schwarzschildSpherical): `ds² = -(1 - r_s/r) dt² + dr²/(1 - r_s/r) + r² dΩ²`, `r_s = 2M`.
* Eddington–Finkelstein `(v, r, θ, φ)`: same catalogue, eq. (eddFinkel):
`ds² = -(1 - r_s/r) dv² + 2 dv dr + r² dΩ²`, with `v = t + r + r_s ln(r - r_s)`.
The outgoing form uses `u = t - r - r_s ln|r - r_s|` and `-2 du dr`. Both are the case
`ε = ±1` of `gEF M ε`; matrix entries are `g_{vr} = g_{rv} = ε` (not `2ε`).
Real `log` satisfies `log x = log |x|`, so `toEF` is the usual `r + 2M ln|r - 2M|` on both sides
of `r = 2M`.
-/
open Real
namespace ExactVacuumAtlas.Schwarzschild
/-- Standard Schwarzschild metric `g_{ij}` in `(t, r, θ, φ)`. -/
noncomputable def gStd (M : ℝ) : Metric 4
| 0, 0 => fun x => -(1 - 2 * M / x 1)
| 1, 1 => fun x => 1 / (1 - 2 * M / x 1)
| 2, 2 => fun x => x 1 ^ 2
| 3, 3 => fun x => x 1 ^ 2 * sin (x 2) ^ 2
| _, _ => fun _ => 0
/-- Candidate inverse for `gStd` (checked, not assumed, in the certificate). -/
noncomputable def giStd (M : ℝ) : Metric 4
| 0, 0 => fun x => -1 / (1 - 2 * M / x 1)
| 1, 1 => fun x => 1 - 2 * M / x 1
| 2, 2 => fun x => 1 / x 1 ^ 2
| 3, 3 => fun x => 1 / (x 1 ^ 2 * sin (x 2) ^ 2)
| _, _ => fun _ => 0
/-- Domain of the standard chart: `r > 0`, `r ≠ 2M`, `0 < θ < π`; `t, φ` arbitrary. For `M > 0`
it has two components (exterior and interior); it never contains `r = 2M`. -/
def domStd (M : ℝ) : Set (Pt 4) := {x | 0 < x 1 ∧ x 1 ≠ 2 * M ∧ 0 < x 2 ∧ x 2 < π}
/-- Eddington–Finkelstein family in `(w, r, θ, φ)`: `ε = 1` ingoing (`w = v`),
`ε = -1` outgoing (`w = u`). -/
noncomputable def gEF (M ε : ℝ) : Metric 4
| 0, 0 => fun x => -(1 - 2 * M / x 1)
| 0, 1 => fun _ => ε
| 1, 0 => fun _ => ε
| 2, 2 => fun x => x 1 ^ 2
| 3, 3 => fun x => x 1 ^ 2 * sin (x 2) ^ 2
| _, _ => fun _ => 0
/-- Candidate inverse for `gEF` (valid when `ε² = 1`). -/
noncomputable def giEF (M ε : ℝ) : Metric 4
| 0, 1 => fun _ => ε
| 1, 0 => fun _ => ε
| 1, 1 => fun x => 1 - 2 * M / x 1
| 2, 2 => fun x => 1 / x 1 ^ 2
| 3, 3 => fun x => 1 / (x 1 ^ 2 * sin (x 2) ^ 2)
| _, _ => fun _ => 0
/-- Domain of the EF charts: `r > 0`, `0 < θ < π`; `w, φ` arbitrary. Contains `r = 2M` when `M > 0`
(for `M ≤ 0` there is no such point with `r > 0`). -/
def domEF : Set (Pt 4) := {x | 0 < x 1 ∧ 0 < x 2 ∧ x 2 < π}
/-- Standard → EF: `w = t + ε (r + 2M log (r - 2M))`, other coordinates unchanged. -/
noncomputable def toEF (M ε : ℝ) (x : Pt 4) : Pt 4 :=
![x 0 + ε * (x 1 + 2 * M * log (x 1 - 2 * M)), x 1, x 2, x 3]
/-- EF → standard: `t = w - ε (r + 2M log (r - 2M))`. -/
noncomputable def fromEF (M ε : ℝ) (y : Pt 4) : Pt 4 :=
![y 0 - ε * (y 1 + 2 * M * log (y 1 - 2 * M)), y 1, y 2, y 3]
end ExactVacuumAtlas.Schwarzschild
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.