Kerr in ingoing (Kerr's original) coordinates: metric, candidate inverse, domain
DefinitionAtlas_Kerr_InDefsIn coordinates , , , , the ingoing Kerr metric has , , , , , and all other entries ; this is Visser's line element read with the half-Hessian convention ( from ). The candidate inverse has , , , , , , other entries . The domain is (there is no restriction; a point with lies in the domain precisely when it also satisfies and ). Also the equatorial point .
Clarification of the preserved source comment (2026-10-14). The published Lean text of this bundle keeps its original module docstring. The comment does not affect the Lean definitions and is left unchanged (published payloads are immutable; no replacement node was created). Three phrases there are to be read as follows. (i) “Visser's u is called v here (it is the advanced null coordinate)”: is an advanced-type coordinate; the radial coordinate vector is null (), but for the covector is not null, since on the domain (where is the inverse by ExactVacuumAtlas.Kerr.In.cert); no claim is made that the hypersurfaces are null. (ii) “…, all other entries 0” after a list naming only , , among the off-diagonal entries: the matrix is symmetric, and the definition gIn sets , , to the same values; only the remaining entries are . (iii) “the coordinate locus Δ = 0 (horizon radii, as a name only) lies inside the domain”: there is no restriction, and a point with lies in the domain precisely when it also satisfies and ; whether such points exist depends on (ExactVacuumAtlas.Release01.coverage gives one for , ).
Row 7 data (all real ). The inverse is data to be verified, not assumed; the domain deliberately omits .
Formalization Note Definition bundle generated by skeleton subtraction from the source module Atlas.Kerr.InDefs; declarations: ExactVacuumAtlas.Kerr.In.domIn, ExactVacuumAtlas.Kerr.In.eqPt, ExactVacuumAtlas.Kerr.In.gIn, ExactVacuumAtlas.Kerr.In.giIn. 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/Kerr/InDefs.lean
-- definition bundle: kept ExactVacuumAtlas.Kerr.In.domIn, ExactVacuumAtlas.Kerr.In.eqPt, ExactVacuumAtlas.Kerr.In.gIn, ExactVacuumAtlas.Kerr.In.giIn
import Mathlib
import Definitions.Def_Atlas_Core_Basic
/-!
# Kerr in Kerr's original (ingoing / advanced Eddington–Finkelstein) coordinates
Source: Visser, *The Kerr spacetime: a brief introduction*, arXiv:0706.0622, eq. (E:K1)
(local copy `archive/sources_atlas01/arXiv_0706.0622_eprint.tgz`, file `Survey-grqc-3.tex`,
lines 205–215), units `G = c = 1`, mass `m = M`:
`ds² = −[1 − 2Mr/Σ] (du + a sin²θ dφ)² + 2 (du + a sin²θ dφ)(dr + a sin²θ dφ) + Σ (dθ² + sin²θ dφ²)`,
`Σ = r² + a² cos²θ`.
Coordinates `(v, r, θ, φ) = (x 0, x 1, x 2, x 3)`; Visser's `u` is called `v` here (it is the
advanced null coordinate). Matrix entries are read off with the half-Hessian convention
(`g_{vr} = 1` from `2 dv dr`): with `F = 1 − 2Mr/Σ` and `A = a sin²θ`,
`g_vv = −F`, `g_vr = 1`, `g_vφ = −F A + A`, `g_rφ = A`, `g_θθ = Σ`,
`g_φφ = −F A² + 2 A² + Σ sin²θ`, all other entries `0`.
Parameters: every real `M`, `a`. Domain: `Σ ≠ 0`, `sin θ ≠ 0`. There is **no** `Δ ≠ 0`
condition: the coordinate locus `Δ = r² − 2Mr + a² = 0` (horizon radii, as a name only) lies inside
the domain. No causal statement is made.
-/
open Real
namespace ExactVacuumAtlas.Kerr.In
/-- Kerr metric in Kerr's original ingoing coordinates (Visser E:K1). -/
noncomputable def gIn (M a : ℝ) : Metric 4
| 0, 0 => fun x => -(1 - 2 * M * x 1 / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2))
| 0, 1 => fun _ => 1
| 1, 0 => fun _ => 1
| 0, 3 => fun x => -(1 - 2 * M * x 1 / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)) * (a * sin (x 2) ^ 2)
+ a * sin (x 2) ^ 2
| 3, 0 => fun x => -(1 - 2 * M * x 1 / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)) * (a * sin (x 2) ^ 2)
+ a * sin (x 2) ^ 2
| 1, 3 => fun x => a * sin (x 2) ^ 2
| 3, 1 => fun x => a * sin (x 2) ^ 2
| 2, 2 => fun x => x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2
| 3, 3 => fun x => -(1 - 2 * M * x 1 / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)) * (a * sin (x 2) ^ 2) ^ 2
+ 2 * (a * sin (x 2) ^ 2) ^ 2 + (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2) * sin (x 2) ^ 2
| _, _ => fun _ => 0
/-- Candidate inverse (checked, not assumed, in the certificate). -/
noncomputable def giIn (M a : ℝ) : Metric 4
| 0, 0 => fun x => a ^ 2 * sin (x 2) ^ 2 / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 0, 1 => fun x => (x 1 ^ 2 + a ^ 2) / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 1, 0 => fun x => (x 1 ^ 2 + a ^ 2) / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 0, 3 => fun x => -a / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 3, 0 => fun x => -a / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 1, 1 => fun x => (x 1 ^ 2 - 2 * M * x 1 + a ^ 2) / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 1, 3 => fun x => -a / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 3, 1 => fun x => -a / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 2, 2 => fun x => 1 / (x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2)
| 3, 3 => fun x => 1 / ((x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2) * sin (x 2) ^ 2)
| _, _ => fun _ => 0
/-- Domain of the ingoing chart: `Σ ≠ 0` and `sin θ ≠ 0`; `v, r, φ` otherwise arbitrary. -/
def domIn (a : ℝ) : Set (Pt 4) := {x | x 1 ^ 2 + a ^ 2 * cos (x 2) ^ 2 ≠ 0 ∧ sin (x 2) ≠ 0}
/-- Equatorial point `(0, ρ, π/2, 0)`. -/
noncomputable def eqPt (ρ : ℝ) : Pt 4 := ![0, ρ, π / 2, 0]
end ExactVacuumAtlas.Kerr.In
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.