Boyer–Lindquist Kerr: Carter-type frames for and
DefinitionAtlas_Kerr_FrameTwo explicit matrix fields in coordinates , columns , , , (frameP, for ), and the same columns with swapped (frameN, for , where is timelike):
They diagonalise the Boyer–Lindquist metric without square roots: for the diagonal is , and for the first two entries are exchanged, ; .
Frame data for the signature obligation of row 6 (theorem ExactVacuumAtlas.Kerr.lorentz); the unnormalised Carter tetrad directions.
Formalization Note Definition bundle generated by skeleton subtraction from the source module Atlas.Kerr.Frame; declarations: ExactVacuumAtlas.Kerr.frameN, ExactVacuumAtlas.Kerr.frameP. 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/Frame.lean
-- definition bundle: kept ExactVacuumAtlas.Kerr.frameN, ExactVacuumAtlas.Kerr.frameP
import Mathlib
import Definitions.Def_Atlas_Core_Basic
import Definitions.Def_Atlas_Kerr_Domain
import Definitions.Def_KerrBL_CoordGeometry
import Definitions.Def_KerrBL_Kerr_Metric
/-!
# Kerr, Boyer–Lindquist: Lorentz signature on the whole regular domain
Let `P = r² + a²`. The unnormalised Carter-type frame
`T₀ = P ∂_t + a ∂_φ`, `T₁ = ∂_r`, `T₂ = ∂_θ`, `T₃ = a sin²θ ∂_t + ∂_φ`
(columns of `frameP`; `det frameP = P − a² sin²θ = Σ`) diagonalises the metric *without square
roots*: `Tᵀ g T = diag(−ΔΣ, Σ/Δ, Σ, Σ sin²θ)`. The three nontrivial identities are
`P² g_tt + 2aP g_tφ + a² g_φφ = −ΔΣ`, `a sin²θ · P · g_tt + (P + a² sin²θ) g_tφ + a g_φφ = 0` and
`a² sin⁴θ g_tt + 2a sin²θ g_tφ + g_φφ = Σ sin²θ`; they hold on `Σ ≠ 0` using `cos²θ = 1 − sin²θ`.
For `Δ > 0` the first entry is negative and the rest positive; for `Δ < 0` the roles of `T₀`
and `T₁` are swapped (`frameN`), since then `∂_r` is timelike and `T₀` spacelike. No part of `domBL`
(`Δ < 0`, `r < 0`, `g_tt ≥ 0`, `g_φφ ≤ 0`) is excluded. Normalisation by `1/√|dᵢ|`
happens once, in `isLorentzian_of_diag`.
-/
open Real
namespace ExactVacuumAtlas.Kerr
/-- Frame for `Δ > 0`: columns `P ∂_t + a ∂_φ`, `∂_r`, `∂_θ`, `a sin²θ ∂_t + ∂_φ`. -/
noncomputable def frameP (a : ℝ) (x : Pt 4) : Matrix (Fin 4) (Fin 4) ℝ :=
!![(x 1)^2 + a^2, 0, 0, a * sin (x 2)^2;
0, 1, 0, 0;
0, 0, 1, 0;
a, 0, 0, 1]
/-- Frame for `Δ < 0`: the same columns with the first two swapped (`∂_r` timelike). -/
noncomputable def frameN (a : ℝ) (x : Pt 4) : Matrix (Fin 4) (Fin 4) ℝ :=
!![0, (x 1)^2 + a^2, 0, a * sin (x 2)^2;
1, 0, 0, 0;
0, 0, 1, 0;
0, a, 0, 1]
end ExactVacuumAtlas.Kerr
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.