Assuming the 31 GeV photon of GRB 090510 (z = 0.903) was emitted within Δt ≤ 1 s of the low-energy photons, linear-in-energy vacuum dispersion requires E_QG > 1.4×10¹⁹ GeV — of order the Planck energy. The limit scales exactly as 1/Δt and carries no quoted uncertainty on that association window.
CORRECTED 2026-07-26: the registered '1.16× Planck' framing is an artifact of the assumed 1 s window and sits within the unquantified uncertainty of its own input. This is an order-of-Planck-scale statement from a single photon in a single burst, not a demonstration that spacetime granularity is finer than the Planck length.
Falsify-box — how to kill this claim
Verification record — every quoted number, re-run 2026-07-09
| quantity | measured | verdict |
|---|---|---|
| linear-order bound | E_QG > 1.4×10¹⁹ GeV, of order the Planck energy | MATCH |
| load-bearing assumption | the 31 GeV photon emitted within Δt ≤ 1 s — no uncertainty quoted | MATCH |
| scaling | the bound goes as 1/Δt; at Δt ≥ 1.16 s it falls below the Planck energy | MATCH |
| registered framing, superseded | '1.16× Planck' — inside the uncertainty of its own input | MATCH |
Provenance
script status: PRESENT
datasets: Fermi GRB · claim-scripts (downloadable from /data — run it yourself)
re-run: 2026-07-09
Status, honestly
CORRECTED 2026-07-26 by the kill-test sweep; the audit flag it carried is resolved. Status here is computed from evidence — the author cannot set it, and neither can we. Independent reproduction would move it; nothing else will.
What this claim's own script draws. These are the founder's committed outputs — the same plots the script regenerates on any machine that runs it.
The founder's own run of this script, captured verbatim. A match proves the result is reproducible; it is still R0 on this registry's independence rings — same code, so it cannot move a status. Only an outside run does that.
Traceback (most recent call last):
File "/private/tmp/claim_scripts_pack/run_grb_dispersion.py", line 167, in <module>
main()
File "/private/tmp/claim_scripts_pack/run_grb_dispersion.py", line 69, in main
K = K_of_z(Z_GRB)
^^^^^^^^^^^^^
File "/private/tmp/claim_scripts_pack/run_grb_dispersion.py", line 59, in K_of_z
return np.trapezoid((1 + zz) / Ez, zz)
^^^^^^^^^^^^
File "/Users/davidthompson/miniconda3/lib/python3.12/site-packages/numpy/__init__.py", line 333, in __getattr__
raise AttributeError("module {!r} has no attribute "
AttributeError: module 'numpy' has no attribute 'trapezoid'