Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Eddington–Finkelstein Schwarzschild: explicit Lorentz frame valid across r=2Mr=2Mr=2M

Definition
Atlas_Schwarzschild_EFCertParts

by He Wang · Oct 13, 2026 · Mathlib 0df444a (Lean v4.33.1)

coordinate-geometryeddington-finkelsteinexact-vacuum-atlasgeneral-relativitylorentzian-signatureschwarzschild-metric

The frame matrix of the Eddington–Finkelstein metric gM,εEFg^{\rm EF}_{M,\varepsilon}gM,εEF​, with f=1−2M/rf=1-2M/rf=1−2M/r:

frame(x)=(1100εf−12εf+1200001/r00001/(rsin⁡θ))\mathrm{frame}(x)=\begin{pmatrix}1&1&0&0\\\varepsilon\tfrac{f-1}{2}&\varepsilon\tfrac{f+1}{2}&0&0\\0&0&1/r&0\\0&0&0&1/(r\sin\theta)\end{pmatrix}frame(x)=​1ε2f−1​00​1ε2f+1​00​001/r0​0001/(rsinθ)​​

(frameE as a function of indices, frame as a matrix), which satisfies frameTgEF frame=diag(−1,1,1,1)\mathrm{frame}^{\mathsf T}g^{\rm EF}\,\mathrm{frame}=\mathrm{diag}(-1,1,1,1)frameTgEFframe=diag(−1,1,1,1) on UEFU^{\rm EF}UEF when ε2=1\varepsilon^2=1ε2=1; it contains no square root of fff, hence is valid at r=2Mr=2Mr=2M.

Frame data for the signature obligation of rows 4–5 (generated file, kernel-checked).

Formalization Note Definition bundle generated by skeleton subtraction from the source module Atlas.Schwarzschild.EFCertParts; declarations: ExactVacuumAtlas.Schwarzschild.EF.frame, ExactVacuumAtlas.Schwarzschild.EF.frameE. No theorem is proved inside the bundle; it imports only Mathlib and other Definitions.Def_* bundles.

Definition code
-- Generated by scripts/release01/gen_platform_tree.py (ATLAS-RELEASE-01) by skeleton subtraction from Atlas/Schwarzschild/EFCertParts.lean
-- definition bundle: kept ExactVacuumAtlas.Schwarzschild.EF.frame, ExactVacuumAtlas.Schwarzschild.EF.frameE
import Mathlib
import Definitions.Def_Atlas_Core_Basic
import Definitions.Def_Atlas_Core_Lift
import Definitions.Def_Atlas_Schwarzschild_Defs
import Definitions.Def_Atlas_Schwarzschild_Domain
set_option maxHeartbeats 4000000
set_option linter.unusedVariables false
set_option linter.unusedSimpArgs false
set_option linter.unusedTactic false
set_option linter.unreachableTactic false

/-! Generated by `scripts/gen_ef_cert.py`. Do not edit by hand. -/

open Real
open scoped ContDiff
open ExactVacuumAtlas ExactVacuumAtlas.Schwarzschild
namespace ExactVacuumAtlas.Schwarzschild.EF
variable (M ε : ℝ)

/-- Explicit orthonormal frame for `gEF` (valid on all of `domEF`, including `r = 2M`). -/
noncomputable def frameE (x : Pt 4) : Fin 4 → Fin 4 → ℝ
  | 0, 0 => 1
  | 0, 1 => 1
  | 1, 0 => ε * ((1 - 2*M/(x 1)) - 1) / 2
  | 1, 1 => ε * ((1 - 2*M/(x 1)) + 1) / 2
  | 2, 2 => 1 / (x 1)
  | 3, 3 => 1 / ((x 1) * sin (x 2))
  | _, _ => 0

noncomputable def frame (x : Pt 4) : Matrix (Fin 4) (Fin 4) ℝ := Matrix.of (frameE M ε x)

end ExactVacuumAtlas.Schwarzschild.EF
Source
Müller–Grave catalogue eq. eddFinkel: ds² = −(1−r_s/r) dv² + 2 dv dr + r² dΩ², v = t + r + r_s ln(r − r_s); outgoing form with u = t − r − r_s ln|r − r_s|; Sylvester's law of inertia (standard linear algebra); Mathlib LinearAlgebra/QuadraticForm/Signature.lean (pinned 0df444a3) for sigPos/sigNeg; Lean source: repository ExactVacuumAtlas (private repository, not publicly accessible; GitHub remote pending (no GitHub identity on the build server)), commit 35f26e6a22f5d72380094fa94edc72dea667df53, Atlas/Schwarzschild/EFCertParts.lean (source module Atlas.Schwarzschild.EFCertParts, file sha256 8a44f231b1b9bd5a31d5108cac0d4264b2f52f6b68599414a2a595716064f871; uploaded bundle = platform_mirror/Definitions/Def_Atlas_Schwarzschild_EFCertParts.lean, sha256 2e93209a80b8bb2c8d5f937101929afb41960b973700c5137342239c662aa297)
Human review
  • Endorsed by Shuze Chen · Oct 14, 2026

    Confirmed by the moderator at approval.

  • Endorsed by He Wang · Oct 14, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me