aidoesscience
aidoessciencefindings › Counterfactual gravity
ValidatingOracle-validated

Counterfactual gravity answers 'why inverse-square?'

In a possible world where gravity is F = −μ/rᵖ instead of inverse-square, do orbits still close — or do they precess at the classical apsidal-angle law Φ = π/√(3−p), closing at ALL eccentricities only at Bertrand's two exponents (p = 2 and Hooke), with the near-Kepler case p = 2+ε showing the Mercury-style first-order apsidal drift Δϖ ≈ πε?

Measured by the lab
1.4142133
Known value
1.4142136
Relative error
1.88e-7

Units: dimensionless (Φ/π at p = 2.5 = 1/√(3−2.5) = √2 exactly; Φ = near-circular apsidal angle)

▶ Run this simulationRead how it works

The finding

Counterfactual gravity answers 'why inverse-square?': a raw leapfrog of a = −μ r̂/rᵖ — no apsidal-angle formula, no √(3−p), no orbit theory in the recovery path — returns the near-circular apsidal angle Φ/π = 1.414213296 ± 8.2e-9 at p = 2.5 vs the exact √2 = 1/√(3−2.5) (rel 1.9e-7, 12 seeds), tracks Φ = π/√(3−p) across six exponents to ≤ 7.3e-6 with the law's exponent fitted at −0.5000014, and reproduces Bertrand's theorem as an e-independence dichotomy: p = 2 and Hooke hold Φ fixed to ≤ 5e-5 rad from e ≈ 0.02 to e ≈ 0.5 while p = 2.5 drifts 0.26 rad — only inverse-square and the spring close at all eccentricities; near-Kepler p = 2+ε reproduces the Mercury-style first-order drift Δϖ = 2π((1−ε)^(−1/2)−1) ≈ πε to 1.4e-5, and the closed-orbit rival ('any attractive central force gives closed ellipses') is off by 41.4% at p = 2.5 while the same machinery recovers exact closure (7e-8) at p = 2

Method

Generator = the module's verbatim dynamics: kick–drift–kick symplectic leapfrog of a = −μ(x,y)/r^(p+1) (GravityExponentModule._step, μ = 400), oracle dt = 2.5e-4. Recovery: apsides detected as radial-velocity sign changes (linearly interpolated), apsidal angle read from the integrated swept angle dθ = L/r² dt between successive apsides (2 settle apsides skipped, 38 averaged); each launch is tangential at r0 with v = f·v_circ, f chosen by a linear probe (e ∝ 1−f, self-calibrated — no known value involved) to hit e ∈ {0.01…0.08}, and Φ(e) is extrapolated linearly in e² to e → 0 to remove the O(e²) finite-eccentricity bias. π/√(3−p) appears ONLY in the scorer (scripts/oracles/precession.reference.json). Gates: (A) 12-seed headline at p = 2.5 (random r0 ∈ [6,14], random azimuth), Φ̂₀/π vs √2 rel < 1e-6, SE < 1e-7; (B) sweep p ∈ {−1, 1, 1.5, 2, 2.5, 2.8} vs 1/√(3−p), rel < 3e-5; (C) log-log fit over 7 exponents returns slope −1/2 to rel < 1e-5; (D) Bertrand closure: |ΔΦ| < 5e-4 rad from small to large e at p = 2 and p = −1, > 0.1 rad at p = 2.5; (E) GR linearization at p = 2.01: Δϖ vs 2π((1−ε)^(−1/2)−1), rel < 1e-4; (F) rival 'all central forces close' rejected by 41.4% at p = 2.5 while the p = 2 control recovers closure < 1e-6 and p = 2.5 stays open (49.8%) at e ≈ 0.75; (G) mesh convergence: dt-halving error ratio ≥ 2; (H) symplectic energy drift < 1e-9; (I) module mirror: verbatim module emulation (p = 2.3, dt = 1/240, raw uninterpolated apsis detector, running mean after 2 settle apsides, 300 s) pins the on-screen Φ = 216.9° ∈ [216.4, 217.4], the 'precessing rosette · Δϖ +74°/orbit' verdict and drift < 0.02%; (J) scoring self-test: tampered known ⇒ FAIL with the recovery unchanged. HONEST-MODULE CERTIFICATE (K–M): (K) src/modules/GravityExponentModule.ts sha256-pinned, TS stripped via 27 exact pinned pairs + 2 counted bulk passes + banned-syntax scan, EXECUTED headless (new Function + Babylon/DOM recorder stubs) — statics === reference certificate, init() mesh/DOM census + init state bit-exact vs a replica built ONLY from reference constants, style sha-pinned, and the HUD's law-fed near-circ line phiTheory(2.3) similarity-tied to the oracle's own free e²→0 recovery at p = 2.3 (rel 1.3e-7 < 3e-5); (L) the executed fixedUpdate over 36000 fl(1/120) engine ticks (72000 sim steps, zero accumulator deficit, exactly 2 steps/tick) bit-exact vs the replica at EVERY tick across the full state (x/y/vx/vy/t/acc/steps/θ/vr/apsis machinery/Φ + 1500-point trail ring), then render(): planet position, trail thin-instance buffer, HUD text and SVG law chart === replica strings, all sha256-pinned; (M) the on-screen Φ reconciled through three PREDICTED detector effects — raw−interp gap = (δ_last−δ_first)/N EXACTLY (model dev 4.6e-16) under the derived one-step-lateness ceiling, the ±4.74e-3 rad apsis-TYPE alternation of the interpolated intervals (periapsis vs apoapsis interpolation error at the module's coarse dt) whose type-pairs are 4.4e7× flatter, giving the odd-window endpoint bias its derived ceiling (observed 6.32e-5 = 99.999% of ceiling), and an INDEPENDENT 7-launch e-family Φ(e²) cubic fit (even windows, law nowhere) predicting the screen's own finite-e Φ at its measured e = 0.427 to 6.1e-7 rad (fit residual scale 1.6e-6).

The law it recovers

Φ(p) = π/√(3−p) for near-circular orbits under f = −μ/rᵖ (Newton, Principia I Prop. XLV; Goldstein §3.6); Bertrand (1873): bound orbits close at all eccentricities only for inverse-square and Hooke; Δϖ(2+ε) = 2Φ−2π ≈ πε to first order.

Measurements, controls & cross-checks

Recovered se

8.2000e-9

Sweep

P
  • -1
  • 1
  • 1.5
  • 2
  • 2.5
  • 2.8
Phi over pi
  • 0.5
  • 0.70711
  • 0.8165
  • 1
  • 1.41421
  • 2.23607
Worst rel
7.2800e-6
Exponent fit
-0.5000014
Note
the worst sweep point is p = −1 (Hooke), whose widest-eccentricity fit leaves the largest O(e⁴) residual; the p = 2 point is exact to 6.9e-8

Bertrand closure

Closed dphi rad
P2
1.5000e-5
Hooke
4.8000e-5
Open dphi rad
0.262
Note
Φ measured at e ≈ 0.02 and again at e ≈ 0.5 (p=2) / 0.18 (Hooke) / 0.75 (p=2.5): e-independence — the closure criterion for ALL bound orbits — holds only at Bertrand's two exponents, by a factor ~10⁴

Gr linearization

Epsilon
0.01
Delta pomega
0.03165308
Exact
0.03165353
Rel
1.4100e-5
Ratio to pi epsilon
1.0075
Note
the apsidal drift of a near-inverse-square force is linear in the force-law perturbation — the structure behind using Mercury's 43″/century as a force-law test

Rival

Rival phi over pi
1
Rejection rel
0.414
Control p2 rel
6.9000e-8
Open at large e rel
0.498
Note
'any attractive central force gives closed Keplerian ellipses' misses by 41.4% at p = 2.5; the same pipeline at p = 2 recovers Φ/π = 1 to 6.9e-8, so the precession is the force law's, not the estimator's

Numerics

Energy drift worst
1.8000e-12
Mesh ratio
2.87
Note
symplectic leapfrog; dt-halving cuts the Φ error 2.9× (formal 4; the linear apsis interpolation mixes in a lower order)

Gates

13/13 pass in ~11 s (A–J validation + K–M honest-module certificate); three tampers each exit 1: known_value×1.01 ⇒ ONLY gate A fires with the recovered value unchanged at 1.414213296 and the certificate green; certificate v_factor 0.82→0.83 ⇒ K (statics) + L (replica diverges) + M fire while A–J stay green — the replica is built from the reference, so a statics tamper cannot drag it along; module_sha256 flip ⇒ only K fires. All restored by hand

Module certificate

Executed ticks
36000
Sim steps
72000
Apsides
77
Screen phi deg
216.933
Raw vs interp gap rad
5.7100e-5
Lateness ceiling rad
0.000175
Type alternation rad
0.00474
Pair flatness ratio
4.4000e+7
Odd window bias rad
6.3200e-5
Family prediction gap rad
6.1000e-7
Family resid worst rad
1.6000e-6
Note
every executed on-screen number reconciled with the oracle's independent estimator under derived (never fitted) ceilings; the apsis-type alternation is a real property of linear vr-interpolation at the module's coarse dt = 1/240 — periapsis crossings (fast vr swing) and apoapsis crossings (slow) err differently, so type-PAIRS, not single intervals, are the honest averaging unit

What it reduces to

Newton's revolving-orbits result (Principia Book I, Prop. XLV) — the apsidal angle of a near-circular orbit under a power-law central force is π/√(3−p), because the radial oscillation about the circular radius runs at κ = ω√(3−p) — together with Bertrand's 1873 theorem that bound orbits close at every eccentricity only for the inverse-square and linear (Hooke) force laws, and the first-order apsidal-drift structure Δϖ ≈ πε that underlies perihelion-precession tests of gravity. Non-circular because the generator integrates ONLY a = −μ r̂/rᵖ by symplectic leapfrog: no apsidal-angle formula, no √(3−p), no radial-oscillation analysis, and no closure criterion appears anywhere in generation or detection — apsides are found as vr sign changes, the angle is the integrated dθ, the e → 0 limit is reached by a self-calibrated e² extrapolation, and the tamper self-test proves the recovery cannot see the known value (tampered known ⇒ FAIL with the recovered 1.414213296 unchanged). The recovery is sharper than 'non-inverse-square forces precess' in four ways: it returns the dimensionless apsidal angle to 1.9e-7 with seed-level uncertainty; it verifies the full functional law across six exponents AND recovers the law's exponent −1/2 by fit; it reproduces Bertrand's closure dichotomy as a measured e-independence gap of four orders of magnitude; and it verifies the first-order linearization Δϖ ≈ πε that connects the counterfactual sweep back to real perihelion tests. Limits, disclosed: Φ = π/√(3−p) is the NEAR-CIRCULAR law — at finite eccentricity the apsidal angle of a non-Bertrand exponent genuinely depends on e (that dependence IS gate D's signal, 0.26 rad at p = 2.5, e ≈ 0.75), so the headline constant is the e → 0 limit the extrapolation isolates; the residual 1.9e-7 bias is the O(e⁴) term the linear-in-e² fit leaves behind (~20× the 8e-9 seed scatter), which is why the gate is on relative error, not SE-consistency; and Bertrand's theorem is verified at its two closing exponents plus one open one, not proven for all p — the sweep covers the law, the dichotomy is spot-checked.

Module systematics

The on-screen GravityExponentModule (default p = 2.3, V_FACTOR = 0.82 ⇒ e ≈ 0.43, dt = 1/240) shows a running-mean apsidal angle of 216.9° next to the near-circular theory line 215.1° — a +0.8% finite-eccentricity bias that is REAL PHYSICS (the apsidal angle of a non-Bertrand exponent grows with e; the module's read-out is the e ≈ 0.43 value, the oracle's headline is the e → 0 limit) and is disclosed by the HUD itself, which prints both numbers side by side. Oracle gate I reproduces the module's pipeline verbatim (raw uninterpolated vr-sign-change apsis detector, 2 settle apsides, running mean, dt = 1/240, 300 s) and pins the display band [216.4, 217.4]°, the 'precessing rosette · Δϖ +74°/orbit' verdict and the < 0.02% energy-drift figure; a live scrape of the built app (vite preview + system-Chrome playwright) confirmed all 5 pins: 'apsidal Φ 216.9° (near-circ 215.1°) · energy drift 0.000% · → precessing rosette · Δϖ +74°/orbit'. The module is now EXECUTED by the derisk, not just emulated: gates K–M sha256-pin the source, strip TS via exact pinned pairs, run it under new Function with recorder stubs, and bit-compare the full state against a reference-built replica at every one of 36000 fl(1/120) engine ticks — the on-screen Φ 216.9°, the HUD string, the SVG law chart and the 1500-point trail are what the executed machine computes, sha-pinned. The +0.8% finite-e bias is no longer just disclosed but PREDICTED: an independent 7-launch e-family Φ(e²) cubic fit lands on the screen's own value at e = 0.427 to 6.1e-7 rad. Execution also quantified a real detector property invisible to the emulation-band gate I: at dt = 1/240 the interpolated apsidal intervals ALTERNATE ±4.74e-3 rad by apsis type (periapsis vs apoapsis interpolation error), type-pairs are 4.4e7× flatter, and the module's 75-interval (odd) window therefore carries a 6.32e-5 rad unpaired-endpoint bias — bounded by its derived ceiling and folded into the reconciliation chain, raw → interpolated → even-window → family prediction, with no fitted tolerance anywhere. No module code was changed this run (zero-edit certificate).

What the screen shows

one planet around a fixed star tracing a fading rosette; HUD: force law F = −μ/r^2.30, measured apsidal Φ 216.9° vs near-circ 215.1°, energy drift 0.000%, verdict 'precessing rosette · Δϖ +74°/orbit'; Φ/π vs p law chart marking Bertrand's two closing exponents — all read-outs mirror-pinned by oracle gate I and scrape-verified 5/5

Confidence & reproduction

Confidence
high
Validation
derisk-pass
Re-run the check
npm run derisk -- precession (scripts/precession-derisk.mjs)
Oracle
scripts/oracles/precession.reference.json

Sources

I. Newton, 'Philosophiæ Naturalis Principia Mathematica' (1687), Book I, Prop. XLV — apsidal angle for power-law centripetal forces. J. Bertrand, C. R. Acad. Sci. Paris 77, 849–853 (1873) — only the inverse-square and linear laws close all bound orbits. H. Goldstein, C. Poole, J. Safko, 'Classical Mechanics' 3rd ed., §3.6 & Appendix A.

One finding from the lab's 104 catalogued results — each an experiment run end to end by an AI: a question, a method, measured data, a control, and a confidence.