validate_1pn_eih.py — src/21-gravity

The script src/21-gravity/validate_1pn_eih.py of the validation package of the paper 21-grav, rendered with an anchor per line. ▶ run the predicates on Google Colab.

21-gravity ledgersrc/21-gravity/validate_1pn_eih.py · 1.8 KBvalidate_1pn_eih.pyColab
1#!/usr/bin/env python32"""O4 partial: the 1PN equivalence lemma (proved) and the nu-sector status.34PROVED here: through 1PN the FRC two-body metric coefficients are identical to5GR-isotropic with the superposed potential U = U1 + U2 -- both carry the same6(U1+U2)^2 cross term -- so the EIH Lagrangian, beta = gamma = 1, and all 1PN7two-body dynamics are shared exactly.  With the binding bookkeeping decided8(validate_binding.py: substrate winding sources, superposition exact), the9would-be Phi_2 ambiguity of the 1PN sector is absent.1011STATUS of the 2PN nu-sector: a first delta-Lagrangian reduction was attempted12and FAILED its internal gate (the nu->0 limit did not reproduce the certified13test-particle coefficient 2 + e^2/2); the route requires the matched-invariant14(E, L) treatment.  Per the corpus discipline the failing derivation is not15shipped; the nu-sector remains OPEN (ledger row O4), with the test-particle16sector derived (validate_2pn.py) and the 1PN sector closed here.17"""18import sympy as sp19ok = True20def chk(n, c):21    global ok; ok = ok and bool(c); print(('PASS ' if c else 'FAIL ') + n)2223U1, U2, t = sp.symbols('U1 U2 t', positive=True)24U = t*(U1 + U2)25A_frc = sp.series(sp.exp(-2*U), t, 0, 3).removeO()26A_gr  = sp.series(((1-U/2)/(1+U/2))**2, t, 0, 3).removeO()27chk("1PN: -g00 identical through (U1+U2)^2 incl. the cross term 4 U1 U2",28    sp.simplify(sp.expand(A_frc - A_gr)) == 0 and sp.expand(A_frc).coeff(t, 2).coeff(U1*U2) == 4)29B_frc = sp.series(sp.exp(2*U), t, 0, 2).removeO()30B_gr  = sp.series((1+U/2)**4, t, 0, 2).removeO()31chk("1PN: g_ij identical through (U1+U2)^1", sp.simplify(sp.expand(B_frc - B_gr)) == 0)32print("    => EIH two-body sector shared exactly at 1PN; nu-sector at 2PN remains OPEN (O4).")33print("\nALL PASS" if ok else "\nFAILURES PRESENT")34raise SystemExit(0 if ok else 1)35