diff --git a/.github/workflows/acceleration-evolution.yml b/.github/workflows/acceleration-evolution.yml
new file mode 100644
index 0000000..722136c
--- /dev/null
+++ b/.github/workflows/acceleration-evolution.yml
@@ -0,0 +1,34 @@
+name: Acceleration evolution
+on:
+ pull_request:
+ paths:
+ - 'acceleration-evolution/**'
+ - '.github/workflows/acceleration-evolution.yml'
+ push:
+ branches: [main]
+ paths:
+ - 'acceleration-evolution/**'
+ - '.github/workflows/acceleration-evolution.yml'
+ workflow_dispatch:
+
+permissions:
+ contents: read
+
+jobs:
+ numerical-checks:
+ runs-on: ubuntu-latest
+ timeout-minutes: 5
+ strategy:
+ matrix:
+ python: ['3.12', '3.14']
+ steps:
+ - uses: actions/checkout@v7
+ - uses: actions/setup-python@v7
+ with:
+ python-version: ${{ matrix.python }}
+ - name: Analytic and failure checks
+ run: python -B -m unittest discover -s acceleration-evolution -p 'test_*.py' -v
+ - name: Verify prediction artifact
+ run: python -B acceleration-evolution/model.py --output acceleration-evolution/results.json --check
+ - name: Verify source-bound comparison
+ run: python -B acceleration-evolution/compare.py --check
diff --git a/README.md b/README.md
index fc7ee21..858c275 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,8 @@ All Python scripts use only the Python 3 standard library. Each certificate file
## Documentation Index
+- [`acceleration-evolution/`](acceleration-evolution/README.md) -- Testable constant versus H-tracking acceleration scales, reproducible predictions, and a comparison with published MUSE-DARK fitted curves. No new raw-data fit or detection claim. Includes the known inverse of annihilation and requirements for a separate cosmological-collision conjecture.
+
- `CLAIMS.md` -- Audited ledger of `C-01` through `C-27` with explicit inputs, literature precedence, Lean lemma scope, and downgraded epistemic status tags.
- `METHODS_AND_PLAYBOOK.md` -- Numerical methods, parameter assumptions, error-model caveats (`M-01`..`M-08`), and canonical checksum table.
- `RESEARCH_NOTEBOOK_AND_REASONING.md` -- Complete reasoning trail, rejected operator dead ends, tangential WHIM/entropy-floor realizations, and next-agent handoff queue.
diff --git a/acceleration-evolution/.gitignore b/acceleration-evolution/.gitignore
new file mode 100644
index 0000000..7a60b85
--- /dev/null
+++ b/acceleration-evolution/.gitignore
@@ -0,0 +1,2 @@
+__pycache__/
+*.pyc
diff --git a/acceleration-evolution/INFERENCE.md b/acceleration-evolution/INFERENCE.md
new file mode 100644
index 0000000..75cf6b8
--- /dev/null
+++ b/acceleration-evolution/INFERENCE.md
@@ -0,0 +1,53 @@
+# A test that separates evolution from calibration
+
+This protocol is proposed. The raw-data fit has not been performed. Its purpose is to compare constant and H-tracking acceleration scales using the same data, nuisance parameters and selection model. See the [study](README.md) for the current published-summary result.
+
+## Required observations
+
+For every galaxy, retain a stable survey identifier, redshift, sample-membership decision and original selection cuts. For every accepted radial point, retain radius, observed velocity, baryonic components, errors and shared nuisance-parameter draws. Include inclination, distance, stellar mass-to-light ratio, gas normalization, beam smearing and pressure support.
+
+Prefer the velocity data cubes and their observational model when practical. A RAR extracted under a chosen halo profile is conditional on that profile. Refitting the extracted relation does not automatically provide a model-independent test of gravity. Retain alternate halo and MOND reconstructions as sensitivity analyses of the same sample.
+
+The MUSE release must identify the 79 selected galaxies, the r > 2 kpc cut, four bin definitions and original posterior samples or covariance. A table of marginal best fits is insufficient to restore correlations between radii or between the two acceleration axes. A global fit over a broad redshift range needs its actual galaxy redshifts, not an invented effective redshift.
+
+## A common likelihood
+
+For galaxy i and radius j, predict the total acceleration from the baryonic component and a₀(zi) = A E(zi)^q. In log space, model the measured acceleration vector around that prediction with intrinsic scatter and its full measurement covariance. Treat uncertain baryonic acceleration as a latent quantity, or propagate joint posterior draws through the observational model.
+
+Shared galaxy parameters must be sampled or marginalized together. Independent radial error bars are not a substitute. If the original posterior has already used the tested RAR as a prior, account for that prior explicitly or refit the original measurements to avoid circular inference.
+
+Compare q = 0 and q = 1 with identical positive-amplitude priors and nuisance terms. Then fit free q to test the fixed forms. Report likelihood or predictive scores only after validating the statistical model. A confidence or credible interval must be labelled with its definition. Do not change a 95% interval into a 1σ error merely because a plotting routine expects one.
+
+Two calibrations answer different questions:
+
+1. A floating A compares shapes. It does not test the absolute equality a₀(0) = cH₀/(2π).
+2. A local-anchor prior compares shape and normalization. Use the local calibration's systematic uncertainty and any covariance shared with the distant sample. A fixed canonical number with zero uncertainty is only a benchmark.
+
+The fiducial background is flat matter plus constant Λ. Propagate cosmological uncertainty and report alternate E(z) histories as named sensitivity analyses. An acceleration scale tied to a changing dark-energy component is a different hypothesis and needs its own equations. Equality to a Hubble-scale number at z = 0 does not identify which cosmic quantity is involved.
+
+## Controls before interpreting q
+
+- Refit with and without each galaxy. Resample galaxies, not individual radii, when using a bootstrap.
+- Match or model stellar mass, surface brightness, physical radial coverage, inclination and gas fraction across redshift. Redshift trends in sample composition can mimic a₀ evolution.
+- Repeat the fit under the documented alternate mass and kinematic models. Include common calibration shifts and redshift-dependent shifts separately.
+- Keep repeated analyses of MHUDF, KMOS and other parent surveys in the same dependence group. Cross-match identifiers before combining studies.
+- For a baryonic Tully–Fisher cross-check, use consistently defined total baryonic masses and asymptotic Vflat. A peak-velocity proxy needs a separately validated mapping, with its uncertainty propagated.
+- Recover injected q = 0 and q = 1 samples through the full observational and selection procedure. Quantify bias and interval coverage before interpreting real-data model selection.
+
+## Falsification and interpretation
+
+Before looking at the final fitted exponent, freeze the sample, likelihood, priors, covariance handling and sensitivity range in a versioned analysis record. Use a calibrated interval with a declared coverage level. A 95% interval excluding q = 1 is a conditional rejection of H tracking only if the recovery tests and specified systematic checks retain valid coverage.
+
+A disagreement that disappears after a plausible mass-calibration or selection correction does not robustly falsify the physical law. A constant scale rejected within one reconstruction is evidence against that constant reconstruction, without identifying the cause.
+
+An evolving baryon–halo relation can also produce an evolving empirical acceleration scale within ordinary gravity.
+
+Replication requires an independently selected galaxy sample or a justified independent observable. Reanalysing the same bins, or switching reconstruction methods for the same galaxies, tests robustness rather than replication.
+
+Agreement with q = 1 would support this parameterization over alternatives in its tested range. It would not establish a unique mechanism, a new fundamental theory, or a cosmic origin scenario.
+
+## Retrieval checkpoint
+
+The MUSE release index was accessible on 12 November 2026. Its linked data server timed out. The KMOS3D CDS table was also unavailable in bounded attempts. The indexed schema contains redshift, masses, peak circular speed and dispersion but no individual errors or covariance. The author HTML supplies only five example rows.
+
+The immediate next action is a read-only retry of the documented releases in [evidence.json](evidence.json), followed by a schema and sample-selection audit. If the required covariance or posterior products are absent, retain that limit. Author contact would be a separate action requiring authorization to send a message.
diff --git a/acceleration-evolution/README.md b/acceleration-evolution/README.md
new file mode 100644
index 0000000..be0419b
--- /dev/null
+++ b/acceleration-evolution/README.md
@@ -0,0 +1,116 @@
+# Does the galactic acceleration scale follow cosmic expansion?
+
+This study defines a testable evolution model and checks its predictions against published observational summaries. Existing MUSE-DARK work reports an increase in the radial acceleration relation's fitted scale. Whether that increase tracks the cosmic expansion rate remains unresolved by this audit.
+
+**Status: reproducible predictions and published-summary comparison. No new galaxy-data fit or discovery claim.** Prepared by gpt-forge with gpt-6.1-sol research assistance at A's request, 12 November 2026. Not reviewed by a person. Review evidence and next actions are in [STATUS.md](STATUS.md).
+
+## The model and what would distinguish it
+
+Let A be the present-day acceleration scale and q its evolution exponent:
+
+\[
+E(z)=H(z)/H_0=\sqrt{\Omega_m(1+z)^3+1-\Omega_m},\qquad a_0(z)=A E(z)^q.
+\]
+
+The benchmark uses A = 1.2 × 10⁻¹⁰ m s⁻² and Ωm = 0.315 in a flat matter-plus-constant-Λ background. Radiation is neglected. The code restricts z to 0–5. These background assumptions are inputs to the test, not consequences of the proposed acceleration law.
+
+| Model | q | Distinguishing behavior |
+| --- | --- | --- |
+| Constant scale | 0 | No evolution. Also describes a scale tied to a constant Λ after normalization |
+| Instantaneous H tracking | 1 | Scale grows in proportion to H(z) |
+| Free exponent | fitted in a future likelihood | Tests whether either fixed model describes the data |
+
+A must be treated identically when comparing q = 0 and q = 1. A fixed local calibration tests shape and normalization together. Allowing A to float tests the evolution shape. A numerical coincidence today, such as a₀ ≈ cH₀/(2π), does not choose between these models. The function computing cH/(2π) is kept separate from the calibrated A.
+
+For a forward prediction, the implementation uses the empirical RAR form of [McGaugh, Lelli and Schombert (2016)](https://arxiv.org/abs/1609.05917):
+
+\[
+g_{\rm tot}(g_{\rm bar},z)=\frac{g_{\rm bar}}{1-\exp[-\sqrt{g_{\rm bar}/a_0(z)}]}.
+\]
+
+It approaches Newtonian behavior at high acceleration and √(gbar a₀) at low acceleration. This is an empirical galaxy model. It supplies no covariant gravitational action, external-field treatment, cosmological perturbations, or derivation of the origin of inertia.
+
+For isolated galaxies in the asymptotic deep-MOND regime, Vflat⁴ = G Mbar a₀. The resulting slope-four baryonic Tully–Fisher relation predicts:
+
+\[
+\Delta\log_{10}M_{\rm bar}\big|_V=-q\log_{10}E(z),\qquad
+\Delta\log_{10}V\big|_{M_{\rm bar}}=\frac{q}{4}\log_{10}E(z).
+\]
+
+These translations require asymptotic flat velocities and consistently defined total baryonic mass. They cannot be applied unchanged to stellar-mass relations, peak velocities, or a different fitted slope.
+
+| Redshift | H tracking: a₀(z)/A | Predicted mass-intercept shift | Predicted velocity shift |
+| --- | --- | --- | --- |
+| 0.5 | 1.322 | −0.121 dex | +0.030 dex |
+| 1.0 | 1.790 | −0.253 dex | +0.063 dex |
+| 2.0 | 3.032 | −0.482 dex | +0.120 dex |
+| 3.0 | 4.566 | −0.660 dex | +0.165 dex |
+
+These are predictions, not measured evolution. The full grid is in [results.json](results.json).
+
+## Check against existing observations
+
+[Ciocan et al. (2026), MUSE-DARK III](https://arxiv.org/html/2604.22613v1), derive accelerations from modelled velocity components for 79 star-forming galaxies at 0.33 < z < 1.44. Their Eq. 4 gives a linear central curve, a₀(z) = (1.00 + 1.59z) × 10⁻¹⁰ m s⁻². Their alternative MOND reconstruction gives (1.03 + 1.20z) × 10⁻¹⁰ m s⁻² in Eq. 14.
+
+Evaluating those curves at the sample boundaries gives the following comparison. Boundary values are evaluations of fitted functions, not measurements of endpoint galaxies. Both reconstructions use the same underlying sample.
+
+| Description | a₀(1.44)/a₀(0.33) | Growth relative to H tracking |
+| --- | --- | --- |
+| Constant benchmark | 1.000 | 0.521 |
+| H-tracking benchmark | 1.921 | 1.000 |
+| Published DC14 reconstruction, Eq. 4 | 2.158 | 1.123 |
+| Published MOND reconstruction, Eq. 14 | 1.934 | 1.007 |
+
+The central trends favor an increasing scale over a flat curve descriptively. The model-dependent change between the two reconstructions is material to the comparison with H tracking. Neither agreement nor discrepancy in this table supplies a confidence level. [comparison.json](comparison.json) retains the calculations and their limits.
+
+
+
+The left panel holds the benchmark's local normalization fixed. The right divides every curve by its value at z = 0.33 to compare shapes. The dotted continuation of a benchmark beyond the measured sample is a forecast. Published curves are drawn only inside the sample interval. No observational error band has been reconstructed.
+
+### Why this is not a new detection
+
+- The primary Eq. 2 and Eq. 4 errors are explicitly 95% intervals. They are preserved as reported. The Fig. 3 plotting convention needs verification before fitting its bins.
+- The Eq. 2 value, 2.38 × 10⁻¹⁰ m s⁻², describes a constant-RAR fit over the whole redshift sample. It is not a point measurement at z = 1.
+- Several radii within one galaxy share fitted parameters. The global fit, four bins and alternative reconstructions overlap. Combining them as independent evidence would count the same data repeatedly.
+- Both acceleration axes depend on disk and halo modelling. Redshift-dependent mass, gas, inclination, pressure-support and selection errors can resemble evolution.
+- A numeric joint covariance, the selected radial data and their modelling posteriors were not recovered. The advertised MUSE release server timed out during this session.
+
+[Alcock (September 2026)](https://arxiv.org/abs/2609.38796) already compares the same binned MUSE measurements with H tracking. This study therefore contributes reproducibility and an uncertainty audit, not the first proposal of that connection. Its abstract treats plotted errors as 1σ. We do not reuse its significance estimates without resolving the plotting convention and reconstructing the likelihood.
+
+Other observations are retained as context. [Übler et al. (2017)](https://arxiv.org/abs/1703.04321) report baryonic Tully–Fisher intercepts for 135 KMOS3D galaxies using slope 3.75, maximum pressure-corrected circular velocities and estimated molecular gas. [Puech et al. (2010)](https://arxiv.org/abs/0903.3961) use six distant rotating disks, with substantial gas and calibration uncertainties.
+
+Neither summary is inserted as a slope-four, asymptotic-velocity a₀ measurement. The accessible Übler HTML has five example catalogue rows followed by ellipses. The full machine-readable table was not retrieved, and its documented schema lacks individual measurement errors. [evidence.json](evidence.json) records values, definitions, overlap, source locations and retrieval limits.
+
+## What would test or falsify the model
+
+The [inference protocol](INFERENCE.md) defines the input requirements and a fair comparison of q = 0, q = 1 and free q. It keeps calibration and galaxy selection visible, uses galaxy-level covariance, and requires independent data before treating the trend as replicated. A robust exclusion of q = 1 would falsify this H-tracking parameterization under its stated background and galaxy assumptions.
+
+The next executable step is to recover the selected MUSE radial data and modelling posteriors, then fit A, q and intrinsic scatter using the same likelihood for each model. The published summaries support this investigation but do not replace that step. No new significance or fitted q is reported here.
+
+## The annihilation idea
+
+The reverse process, photon conversion into particle–antiparticle pairs, is known physics. [Annihilation and relics](annihilation-and-relics.md) connects it to early-universe balance and possible dark relics. It also states what a collision of universe-scale objects would have to predict. No collision model is solved, and no relation between that idea and a₀(z) has been derived.
+
+## Reproduce
+
+From the repository root, Python 3.11 or later is sufficient for all numerical checks:
+
+```sh
+python3 -B -m unittest discover -s acceleration-evolution -p 'test_*.py' -v
+python3 acceleration-evolution/model.py --output acceleration-evolution/results.json --check
+python3 acceleration-evolution/compare.py --check
+```
+
+Omit `--check` to regenerate a numerical artifact. Checks are read-only and reject missing or stale artifacts. They require the same schema and scalar types, allowing relative floating-point differences up to 10⁻¹² for platform rounding. The comparison embeds the SHA-256 digest of the source transcription.
+
+Tests check analytic limits, signs, units, numerical stability, source changes and stale-output rejection. They validate the calculation, not the physical hypothesis. The [validation record](VALIDATION.md) also records an unrelated failure in an unchanged baseline certificate.
+
+The optional figure uses `plot.py` and the pinned `plot-requirements.txt`. Numerical verification has no third-party dependency. All figures are generated from model predictions and the explicitly labelled published central curves.
+
+## Connections across Foundation0
+
+- [fractals](https://github.com/Foundation-0/fractals): distinguish measured scaling from visual resemblance, and state the scales and epochs over which a relation holds.
+- [physics0](https://github.com/Foundation-0/physics0): preserve model assumptions, known mechanisms, conjectures and falsification conditions.
+- [astr0](https://github.com/Foundation-0/astr0): identify observations, selection, calibration and covariance needed to adjudicate the models.
+
+This directory owns the equations, evidence transcription and generated results. The companion repositories link to it rather than copying a numerical implementation.
diff --git a/acceleration-evolution/STATUS.md b/acceleration-evolution/STATUS.md
new file mode 100644
index 0000000..4a146d1
--- /dev/null
+++ b/acceleration-evolution/STATUS.md
@@ -0,0 +1,38 @@
+# Acceleration evolution: evidence and continuity
+
+Capability ID: `gravity.acceleration-evolution`. Purpose: distinguish a constant galactic acceleration scale from a scale tied to cosmic expansion using reproducible predictions and appropriately qualified observations. The purpose survives changes to implementation paths.
+
+Human direction: investigate the relation, develop a testable model, check existing observations, and connect gravity, fractals, physics0 and astr0. The added annihilation idea is retained as a separate hypothesis. It has not been used as a premise for the acceleration model.
+
+## Responsibilities and interfaces
+
+| Project | Responsibility | Interface |
+| --- | --- | --- |
+| gravity | Model, source transcription, calculations, scientific limits | This directory is the canonical source |
+| fractals | Distinguish scaling from resemblance and bound its domain | Companion note links to the canonical study |
+| physics0 | Assumptions, established mechanisms and falsification | Companion note links to the model and inference protocol |
+| astr0 | Observables, calibration, selection and covariance | Companion note links to the evidence input contract |
+
+Current implementation: `model.py`, `compare.py`, `evidence.json`, `results.json`, `comparison.json` and `plot.py`. The annihilation conjecture has its own note and no derived interface to a₀(z).
+
+## Evidence state
+
+- Source reviewed: primary MUSE-DARK III author manuscript, published KMOS3D and Puech summaries, and the prior H-tracking reanalysis abstract. Sources and exact locations are in `evidence.json`.
+- Local numerical checks: thirteen tests pass, including analytic limits, platform-rounding tolerance and stale-artifact rejection. Deterministic prediction and comparison checks pass. See `VALIDATION.md` for the baseline regression limit.
+- Scientific status: published-summary diagnostic only. No observational likelihood, new fitted exponent, calibrated model-selection score or detection significance.
+- Raw-data status: selected MUSE radial data and covariance not recovered. The public release server timed out. The full KMOS3D table was not recovered and its indexed schema lacks measurement errors.
+- Review status: separate source/code and cross-repository documentation reviews found no actionable issues. The source/code review approved `83809b8279c20ecb6932b9490e0cb9b468022e58`, including the final tolerance change and all 13 tests. Human review pending. No merge or deployment claimed.
+
+## Peer responses and composition
+
+Research agents supplied separate observational and annihilation reviews. The observational response identified the 95% interval convention, shared-sample dependence and the lack of an effective redshift for the whole-sample fit. These findings changed the implementation from a proposed bin likelihood to an explicitly non-statistical central-curve comparison.
+
+The numerical agent implemented prediction functions separately from the evidence transcription. A non-author source/code reviewer checked the primary equations, model, comparison and figure. A separate reviewer checked the companion documents and composed links. Both found no actionable issues in their scopes. These are agent review records, not human scientific peer review.
+
+The approved scientific candidate is `83809b8279c20ecb6932b9490e0cb9b468022e58`. The subsequent change records this review without changing equations, data or results. Companion snapshots are fractals `9669f55`, physics0 `76410c3` and astr0 `607a11e`. All relative and composed file links resolved against those branch trees. Remote publication is a separate step.
+
+## Retained lesson and next action
+
+An apparent match to H(z) depends on the reconstruction and amplitude treatment. Do not convert summary curves, broad-sample estimates or differently defined Tully–Fisher intercepts into independent precise measurements. Confidence-level conventions and galaxy-level covariance are part of the scientific input.
+
+Next action: recover the selected MUSE measurements and modelling posteriors from the documented release, verify membership and uncertainty definitions, then follow `INFERENCE.md`. A successful numerical test establishes arithmetic and reproducibility only. Update the companion notes when the canonical evidence state changes.
diff --git a/acceleration-evolution/VALIDATION.md b/acceleration-evolution/VALIDATION.md
new file mode 100644
index 0000000..1f5c850
--- /dev/null
+++ b/acceleration-evolution/VALIDATION.md
@@ -0,0 +1,31 @@
+# Validation record
+
+Checked 12 November 2026 with Python 3.14.6 on macOS. Numerical runtime has no external dependencies. Plot rendering used Matplotlib 3.11.2 in an isolated environment. The figure was visually inspected for labels, source boundaries and the absence of implied confidence bands.
+
+## New study
+
+| Check | Result |
+| --- | --- |
+| Unit tests discovered in this directory | 13 passed |
+| Prediction artifact `--check` | Passed |
+| Source-bound comparison `--check` | Passed |
+| Relative and composed cross-repository links | Resolved against the four local branch trees |
+| Prose check on the scientific/companion documents | Passed |
+| Independent scientific source/code review | Approved scientific candidate 83809b8, including the final tolerance change |
+| Independent companion-document review | No actionable findings in the inspected snapshot |
+
+The checks validate computation and the stated evidence boundaries. They do not establish that H tracking is true or validate the original galaxy measurements. The workflow runs the numerical checks on Python 3.12 and 3.14. Hosted results are separate from the local record.
+
+## Existing repository checks
+
+Seven existing generators passed their `--check` mode: `verify_all.py`, Waves 3, 5, 6, 7, 9 and 10. Wave 4 failed with `Canonical SHA-256 mismatch on disk`.
+
+The Wave 4 failure was confirmed in baseline commit `7f388db49ca8a8f37b9140704391de0eb3968aed` and persists unchanged after the documentation-only main update to `cb0de90`. Its `results/wave4_unified_certificates.json` lacks the `sha256_canonical` field required by the verifier. The file in this branch is byte-identical to that baseline blob. No existing certificate or generator was changed by this study.
+
+This is a pre-existing reproducibility issue for that certificate. Passing the new study's tests does not make the whole repository's verification suite pass. Repair and independent regeneration of the Wave 4 certificate remain outside this contribution.
+
+## Review scope
+
+The source/code reviewer checked Ciocan Eq. 2, Eq. 4 and Eq. 14, error coverage, sample dependence, model equations, units, BTFR signs, the comparison and figure. The companion reviewer checked epistemic status, inference assumptions and links. The latter did not independently review its own annihilation note or the numerical code.
+
+No human scientific review, full galaxy-data reanalysis, merge or deployment is claimed. The next empirical step remains recovery of the selected measurements and their uncertainty products.
diff --git a/acceleration-evolution/annihilation-and-relics.md b/acceleration-evolution/annihilation-and-relics.md
new file mode 100644
index 0000000..de216ae
--- /dev/null
+++ b/acceleration-evolution/annihilation-and-relics.md
@@ -0,0 +1,78 @@
+# Annihilation, pair production, and possible relics
+
+This note examines whether particle annihilation helps explain a proposed collision of universe-scale bodies. It distinguishes established reactions from calculations the proposal still needs. See the [study README](README.md) for the wider acceleration work.
+
+Research assistance by gpt-forge (gpt-6.1-sol), at A's request, 12 November 2026. Not human-reviewed. No universe-collision model has been solved here, and no relation to the galactic acceleration scale $a_0$ has been derived.
+
+## The reverse reaction is known
+
+Annihilation changes the particles carrying energy. It does not destroy energy. An electron and positron can produce two photons, and two photons can produce an electron and positron:
+
+$$
+e^-+e^+ \leftrightarrow \gamma+\gamma.
+$$
+
+Breit and Wheeler calculated the reverse reaction in 1934 [1]. Energy, momentum, electric charge, and angular momentum must balance. Particle number and total rest mass need not remain fixed. Antimatter has positive mass-energy, rather than negative energy that cancels ordinary matter.
+
+For photon energies $E_1,E_2$ and collision angle $\theta$, define the squared centre-of-momentum energy as $s_E$. With the speed of light $c$ explicit,
+
+$$
+s_E=2E_1E_2(1-\cos\theta)\ge(2m_ec^2)^2.
+$$
+
+Thus head-on photons require $E_1E_2\ge m_e^2c^4$. Equal photon energies each need at least $m_ec^2\simeq511$ keV. These statements concern the kinematic threshold, not a guarantee of a large reaction rate.
+
+An isolated real photon cannot create this massive pair in empty flat spacetime. Its four-momentum has zero invariant mass, while the pair has positive invariant mass. A second photon, a recoiling nucleus, or an external field changes the momentum budget. These are distinct experimental arrangements.
+
+SLAC E144 observed positrons in 1997 [2]. Electrons first scattered laser photons to high energies. A high-energy photon then interacted with several laser photons to create a pair. This was evidence for nonlinear, multiphoton production.
+
+STAR measured electron–positron pairs in encounters where fast gold ions passed without ordinary nuclear overlap [3]. The pair distributions matched photon fusion associated with the ions' electromagnetic fields. These photons are treated as quasi-real in the equivalent-photon description. This experiment should not be described as two independently prepared gamma-ray beams colliding in vacuum.
+
+## Creation and annihilation in an expanding universe
+
+A hot plasma can create and annihilate particles at the same time. In thermal equilibrium, the forward and reverse rates balance statistically. For a simple symmetric relic species $\chi$, a common number-density equation is
+
+$$
+\frac{dn_\chi}{dt}+3Hn_\chi
+=-\langle\sigma v\rangle\left(n_\chi^2-n_{\chi,\mathrm{eq}}^2\right).
+$$
+
+Here $H$ measures expansion, $n_{\chi,\mathrm{eq}}$ is the equilibrium density, and $\langle\sigma v\rangle$ measures the thermally averaged reaction strength.
+
+Both sides have units of number density per time. This convention suits a self-conjugate species. Distinct particle and antiparticle densities require coupled equations or adjusted factors, depending on whether $n_\chi$ counts one species or both.
+
+As expansion and cooling reduce reaction rates, particles once in equilibrium can survive through thermal freeze-out. A particle with much weaker interactions may never reach equilibrium. Rare reactions or decays can instead build its abundance through freeze-in. Hall and colleagues developed this latter mechanism [4]. Neither mechanism establishes which particle, if any, constitutes dark matter.
+
+Pair creation produces equal matter and antimatter. It cannot alone explain a net excess of baryons, the particles that include protons and neutrons. A symmetric starting model needs a process that generates this excess.
+
+Under the usual assumptions, Sakharov's conditions require baryon-number violation, C and CP symmetry violation, and departure from thermal equilibrium [5]. An assumed initial asymmetry must also be stated and tracked.
+
+## What the collision proposal must add
+
+A collision can redistribute energy into many outgoing particles. That fact does not establish the creation of multiple expanding universes. The proposal needs definitions of its incoming bodies, what makes them “opposite,” and the geometry in which they interact. Separate spacetimes need a specified interaction before “collision” has a mathematical meaning.
+
+Dark matter also needs a physical definition. Ordinary atoms or antimatter left after incomplete annihilation remain ordinary interacting material. A proposed dark species needs a mass, interactions, lifetime, abundance, and velocity distribution that allow the observed structures to form.
+
+For reference, Planck's base $\Lambda$CDM fit gives $\Omega_ch^2\simeq0.120$ and $\Omega_bh^2\simeq0.0224$, about 5.4 times as much cold dark matter as baryonic matter [7]. This is a cosmological fit, not a particle identification. Planck also constrains energy deposited by dark-matter annihilation, with limits that depend on the particle model.
+
+Matter and antimatter domains touching inside the observable universe would produce annihilation radiation. Calculations by Cohen, De Rújula and Glashow strongly constrain conventional symmetric-domain models through gamma rays and the cosmic microwave background [6].
+
+Those calculations do not exclude every imagined causally disconnected antimatter universe.
+
+## A calculation that could test part of the idea
+
+A tractable next step is to specify two colliding radiation or plasma shells, ordinary gravity, and one stable dark particle. Evolve production, annihilation, expansion, and entropy. Compare the resulting dark-particle abundance with a clearly defined thermal history having matched initial energy and charges. This tests whether the collision changes the relic yield.
+
+Before fitting parameters, set observable failure criteria: excess annihilation radiation, incompatible light-element abundances, excessive particle velocities, or a wrong dark-to-baryon ratio.
+
+A separate gravitational calculation must demonstrate whether multiple expanding regions form rather than a hot plasma or gravitational collapse. A distinctive predicted signal, with a stated exclusion threshold, would make the broader proposal testable.
+
+## Primary sources
+
+1. Breit and Wheeler (1934), [Collision of Two Light Quanta](https://doi.org/10.1103/PhysRev.46.1087).
+2. Burke et al. (1997), [Positron Production in Multiphoton Light-by-Light Scattering](https://doi.org/10.1103/PhysRevLett.79.1626).
+3. STAR Collaboration (2021), [Measurement of electron–positron Momentum and Angular Distributions from Linearly Polarized Photon Collisions](https://doi.org/10.1103/PhysRevLett.127.052302).
+4. Hall et al. (2010), [Freeze-In Production of FIMP Dark Matter](https://arxiv.org/abs/0911.1120).
+5. Sakharov (1967, reprint), [Violation of CP invariance, C asymmetry, and baryon asymmetry of the universe](https://ufn.ru/en/articles/1991/5/h/).
+6. Cohen, De Rújula and Glashow (1998), [A Matter-Antimatter Universe?](https://arxiv.org/abs/astro-ph/9707087).
+7. Planck Collaboration (2020), [Planck 2018 results. VI. Cosmological parameters](https://arxiv.org/abs/1807.06209).
diff --git a/acceleration-evolution/compare.py b/acceleration-evolution/compare.py
new file mode 100644
index 0000000..5147676
--- /dev/null
+++ b/acceleration-evolution/compare.py
@@ -0,0 +1,80 @@
+"""Reproduce central-curve diagnostics without inventing an observation likelihood."""
+import argparse
+import hashlib
+import json
+import math
+from pathlib import Path
+
+from model import FIDUCIAL_A, FIDUCIAL_OMEGA_M, _strict_json, documents_equal, expansion, predict
+
+ROOT = Path(__file__).resolve().parent
+
+
+def comparison_document(evidence_path=ROOT / "evidence.json"):
+ raw = evidence_path.read_bytes()
+ data = _strict_json(raw.decode("utf-8"))
+ lo, hi = data["primary_source"]["sample_redshift_limits"]
+ e_growth = expansion(hi) / expansion(lo)
+ curves = []
+ grid = [lo, 0.5, 0.75, 1.0, hi]
+ for item in data["published_linear_curves"]:
+ a, b = item["intercept_m_s2"], item["slope_m_s2_per_redshift"]
+ values = [a + b * z for z in grid]
+ if any(not math.isfinite(v) or v <= 0 for v in values):
+ raise ValueError("published central curve must remain positive and finite")
+ growth = values[-1] / values[0]
+ curves.append({
+ "id": item["id"], "independence_group": item["independence_group"],
+ "interval_growth": growth,
+ "growth_relative_to_H_tracking": growth / e_growth,
+ "endpoint_equivalent_q_NOT_a_fit": math.log(growth) / math.log(e_growth),
+ "values": [{"z": z, "a0_m_s2": value,
+ "ratio_to_low_boundary": value / values[0]}
+ for z, value in zip(grid, values)],
+ })
+ return {
+ "schema_version": 1,
+ "kind": "published_central_curve_diagnostic",
+ "evidence_sha256": hashlib.sha256(raw).hexdigest(),
+ "parameters": {"omega_m": FIDUCIAL_OMEGA_M, "benchmark_A_m_s2": FIDUCIAL_A},
+ "interval": [lo, hi],
+ "interpretation": [
+ "Endpoints evaluate published fitted curves at sample boundaries, not measured endpoint galaxies.",
+ "The equivalent q reproduces only endpoint growth; it is not a best fit or posterior estimate.",
+ "Both reconstructions use the same galaxies and are not independent observations.",
+ "No covariance, confidence band, chi-squared, p-value, Bayes factor or discovery significance is computed.",
+ "Summary intervals are preserved in evidence.json without converting 95 percent coverage to 1 sigma."
+ ],
+ "constant_interval_growth": 1.0,
+ "H_tracking_interval_growth": e_growth,
+ "published_curves": curves,
+ "benchmark_predictions": [predict(z, 1) for z in grid],
+ "H_shape_background_sensitivity": [
+ {"omega_m": om, "interval_growth": expansion(hi, om) / expansion(lo, om)}
+ for om in (0.30, 0.315, 0.33)
+ ],
+ "inference_status": "Raw-data and covariance inference not performed; publication-summary comparison only"
+ }
+
+
+def main(argv=None):
+ parser = argparse.ArgumentParser(description=__doc__)
+ parser.add_argument("--output", type=Path, default=ROOT / "comparison.json")
+ parser.add_argument("--check", action="store_true")
+ args = parser.parse_args(argv)
+ expected = comparison_document()
+ if args.check:
+ try:
+ actual = _strict_json(args.output.read_text())
+ if not documents_equal(expected, actual):
+ raise ValueError("stale comparison or changed source transcription")
+ except (OSError, ValueError) as exc:
+ parser.exit(1, f"check failed: {exc}\n")
+ print("verified comparison")
+ else:
+ args.output.write_text(json.dumps(expected, indent=2, allow_nan=False) + "\n")
+ print("wrote comparison")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/acceleration-evolution/comparison.json b/acceleration-evolution/comparison.json
new file mode 100644
index 0000000..67a2064
--- /dev/null
+++ b/acceleration-evolution/comparison.json
@@ -0,0 +1,149 @@
+{
+ "schema_version": 1,
+ "kind": "published_central_curve_diagnostic",
+ "evidence_sha256": "37bfad5f6944e3a59a31a80b2ee2403639bd8234aa58aae96a2c4466977d1770",
+ "parameters": {
+ "omega_m": 0.315,
+ "benchmark_A_m_s2": 1.2e-10
+ },
+ "interval": [
+ 0.33,
+ 1.44
+ ],
+ "interpretation": [
+ "Endpoints evaluate published fitted curves at sample boundaries, not measured endpoint galaxies.",
+ "The equivalent q reproduces only endpoint growth; it is not a best fit or posterior estimate.",
+ "Both reconstructions use the same galaxies and are not independent observations.",
+ "No covariance, confidence band, chi-squared, p-value, Bayes factor or discovery significance is computed.",
+ "Summary intervals are preserved in evidence.json without converting 95 percent coverage to 1 sigma."
+ ],
+ "constant_interval_growth": 1.0,
+ "H_tracking_interval_growth": 1.9206998594100706,
+ "published_curves": [
+ {
+ "id": "muse_dc14_eq4",
+ "independence_group": "MUSE_MHUDF_79",
+ "interval_growth": 2.1575391880369907,
+ "growth_relative_to_H_tracking": 1.123308869663615,
+ "endpoint_equivalent_q_NOT_a_fit": 1.178153095153886,
+ "values": [
+ {
+ "z": 0.33,
+ "a0_m_s2": 1.5247e-10,
+ "ratio_to_low_boundary": 1.0
+ },
+ {
+ "z": 0.5,
+ "a0_m_s2": 1.795e-10,
+ "ratio_to_low_boundary": 1.1772807765462059
+ },
+ {
+ "z": 0.75,
+ "a0_m_s2": 2.1925e-10,
+ "ratio_to_low_boundary": 1.4379878008788614
+ },
+ {
+ "z": 1.0,
+ "a0_m_s2": 2.59e-10,
+ "ratio_to_low_boundary": 1.698694825211517
+ },
+ {
+ "z": 1.44,
+ "a0_m_s2": 3.2895999999999997e-10,
+ "ratio_to_low_boundary": 2.1575391880369907
+ }
+ ]
+ },
+ {
+ "id": "muse_mond_eq14",
+ "independence_group": "MUSE_MHUDF_79",
+ "interval_growth": 1.9340813464235624,
+ "growth_relative_to_H_tracking": 1.0069669849497473,
+ "endpoint_equivalent_q_NOT_a_fit": 1.010637257482444,
+ "values": [
+ {
+ "z": 0.33,
+ "a0_m_s2": 1.426e-10,
+ "ratio_to_low_boundary": 1.0
+ },
+ {
+ "z": 0.5,
+ "a0_m_s2": 1.63e-10,
+ "ratio_to_low_boundary": 1.1430575035063113
+ },
+ {
+ "z": 0.75,
+ "a0_m_s2": 1.93e-10,
+ "ratio_to_low_boundary": 1.35343618513324
+ },
+ {
+ "z": 1.0,
+ "a0_m_s2": 2.23e-10,
+ "ratio_to_low_boundary": 1.5638148667601683
+ },
+ {
+ "z": 1.44,
+ "a0_m_s2": 2.758e-10,
+ "ratio_to_low_boundary": 1.9340813464235624
+ }
+ ]
+ }
+ ],
+ "benchmark_predictions": [
+ {
+ "z": 0.33,
+ "E": 1.1941861894193888,
+ "a0_m_s2": 1.4330234273032666e-10,
+ "a0_ratio_to_z0": 1.1941861894193888,
+ "btfr_mass_intercept_shift_dex": -0.07707204432555226,
+ "velocity_at_fixed_baryonic_mass_shift_dex": 0.019268011081388065
+ },
+ {
+ "z": 0.5,
+ "E": 1.3221667822177354,
+ "a0_m_s2": 1.5866001386612826e-10,
+ "a0_ratio_to_z0": 1.3221667822177354,
+ "btfr_mass_intercept_shift_dex": -0.1212862418578013,
+ "velocity_at_fixed_baryonic_mass_shift_dex": 0.030321560464450326
+ },
+ {
+ "z": 0.75,
+ "E": 1.5405204072001124,
+ "a0_m_s2": 1.8486244886401348e-10,
+ "a0_ratio_to_z0": 1.5405204072001124,
+ "btfr_mass_intercept_shift_dex": -0.1876674557692837,
+ "velocity_at_fixed_baryonic_mass_shift_dex": 0.046916863942320926
+ },
+ {
+ "z": 1.0,
+ "E": 1.7902513789968157,
+ "a0_m_s2": 2.1483016547961789e-10,
+ "a0_ratio_to_z0": 1.7902513789968157,
+ "btfr_mass_intercept_shift_dex": -0.25291401692741816,
+ "velocity_at_fixed_baryonic_mass_shift_dex": 0.06322850423185454
+ },
+ {
+ "z": 1.44,
+ "E": 2.293673246127268,
+ "a0_m_s2": 2.752407895352722e-10,
+ "a0_ratio_to_z0": 2.293673246127268,
+ "btfr_mass_intercept_shift_dex": -0.36053154891338957,
+ "velocity_at_fixed_baryonic_mass_shift_dex": 0.09013288722834739
+ }
+ ],
+ "H_shape_background_sensitivity": [
+ {
+ "omega_m": 0.3,
+ "interval_growth": 1.8968392557567781
+ },
+ {
+ "omega_m": 0.315,
+ "interval_growth": 1.9206998594100706
+ },
+ {
+ "omega_m": 0.33,
+ "interval_growth": 1.9436103432980922
+ }
+ ],
+ "inference_status": "Raw-data and covariance inference not performed; publication-summary comparison only"
+}
diff --git a/acceleration-evolution/comparison.png b/acceleration-evolution/comparison.png
new file mode 100644
index 0000000..a351e5c
Binary files /dev/null and b/acceleration-evolution/comparison.png differ
diff --git a/acceleration-evolution/comparison.svg b/acceleration-evolution/comparison.svg
new file mode 100644
index 0000000..a07a409
--- /dev/null
+++ b/acceleration-evolution/comparison.svg
@@ -0,0 +1,3170 @@
+
+
+
diff --git a/acceleration-evolution/evidence.json b/acceleration-evolution/evidence.json
new file mode 100644
index 0000000..ff849f2
--- /dev/null
+++ b/acceleration-evolution/evidence.json
@@ -0,0 +1,110 @@
+{
+ "schema_version": 1,
+ "review_date": "2026-11-12",
+ "purpose": "Published-summary comparisons, not a new fit to galaxy observations",
+ "primary_source": {
+ "authors": "Ciocan et al.",
+ "year": 2026,
+ "title": "MUSE-DARK III: The evolution of the radial acceleration relation at intermediate redshifts",
+ "url": "https://arxiv.org/html/2604.22613v1",
+ "doi": "10.1051/0004-6361/202659230",
+ "html_sha256": "d6acffa4c1e5861652a85cc9b7ef5213aafa5be3f5ea6773e773d568d06bdb13",
+ "galaxies": 79,
+ "sample_redshift_limits": [0.33, 1.44],
+ "independence_group": "MUSE_MHUDF_79",
+ "observable": "RAR inferred from modelled disk and halo velocity components",
+ "selection": "Regular star-forming systems, stellar mass above 10^8.8 solar masses; radial points below 2 kpc excluded",
+ "limitations": [
+ "Several radial points per galaxy share fitted parameters.",
+ "Gas and stellar mass assumptions affect both acceleration axes.",
+ "Published global fits, four bins and alternative reconstructions overlap.",
+ "No numeric joint covariance or fitted-point posterior was recovered."
+ ]
+ },
+ "published_linear_curves": [
+ {
+ "id": "muse_dc14_eq4",
+ "label": "Published DC14 reconstruction",
+ "source_location": "Section 3.2, equations 3 and 4",
+ "formula": "a0(z) = intercept + slope*z",
+ "intercept_m_s2": 1e-10,
+ "slope_m_s2_per_redshift": 1.59e-10,
+ "intercept_reported_interval_halfwidth_m_s2": 4e-12,
+ "slope_reported_interval_halfwidth_m_s2_per_redshift": 1e-11,
+ "interval_level": 0.95,
+ "interval_note": "Eq4 gives symmetric slope 0.10; abstract/conclusion give +0.11/-0.10, in 1e-10 SI units.",
+ "covariance": null,
+ "statistical_use": "Central curve only; no reconstructed likelihood or confidence band",
+ "independence_group": "MUSE_MHUDF_79"
+ },
+ {
+ "id": "muse_mond_eq14",
+ "label": "Published MOND reconstruction",
+ "source_location": "Appendix E, equation 14",
+ "formula": "a0(z) = intercept + slope*z",
+ "intercept_m_s2": 1.03e-10,
+ "slope_m_s2_per_redshift": 1.20e-10,
+ "reported_intercept_error_m_s2": 5e-12,
+ "reported_slope_error_m_s2_per_redshift": 1e-11,
+ "interval_level": null,
+ "interval_note": "Appendix uses the main-text methodology; no separately verified coverage statement attached to Eq14. Errors unused.",
+ "covariance": null,
+ "statistical_use": "Same-sample reconstruction sensitivity, not independent replication",
+ "independence_group": "MUSE_MHUDF_79"
+ }
+ ],
+ "full_sample_constant_fit": {
+ "source_location": "Section 3.1, equation 2",
+ "a0_m_s2": 2.38e-10,
+ "upper_error_m_s2": 1.2e-11,
+ "lower_error_m_s2": 1e-11,
+ "interval_level": 0.95,
+ "effective_redshift": null,
+ "use": "Context only; the full 0.33