QSOL UFF v5.1.0 - Reproducible Astrophysics, Falsification, and Defense-in-Depth Assurance Laboratory
QSOL UFF is a transparent Python research laboratory for two kinds of work that should never be confused:
- fitting and comparing explicit astrophysical models; and
- testing extraordinary catalogue-level spatial claims under frozen, replayable, survey-aware, and now fail-closed assurance rules.
UFF v5.1.0 retains the galaxy-dynamics and compact-object tools, UFF-SLFA, Sheridan Crucible, claim provenance, and independent assessment programme from v5.0.0. It adds a deliberately small defense-in-depth layer around the evidence workflow: a QEC-inspired computational gate, a SPECTRAL-inspired pre-observation witness, a statistical-mechanics ensemble guardrail, and SONIFICATION-inspired receiver-neutral audit telemetry.
Scientific boundary: UFF can formalise a claim, expose circular selection, model survey geometry, freeze input identities, verify bundle integrity, reproduce a deterministic result, and expose trust-boundary telemetry. It cannot turn catalogue diagnostics into physical objects, prove analyst blindness from a local hash, guarantee that a chosen null ensemble represents nature, or promote replay into physical truth.
The v5.1.0 assurance rule is explicit:
REPLAY_VERIFIED != ENSEMBLE_CALIBRATED != PHYSICAL_TRUTH
| Layer | Purpose | Primary interface | Status |
|---|---|---|---|
| Galaxy and compact-object laboratory | Fit rotation curves, compare baryonic/halo/MOND/UFF model families, and report separate Kerr/LQG scales | python -m uff |
Stable v4 core retained |
| UFF-SLFA | Test a frozen anomaly-rate claim inside fixed celestial node caps | python sky_lattice_audit.py |
Preregistration-ready reference implementation |
| Sheridan Crucible | Add masks, completeness, spherical density reconstruction, nuisance models, survey-matched rotations, and injection calibration | python -m uff.sheridan |
Exact survey-aware reference implementation |
| Provenance and assessment | Preserve incompatible public claim versions, source hashes, blockers, and methodological review | JSON ledgers and Markdown records | Governance / audit layer |
| Defense-in-depth assurance | Freeze identities, fail closed on bundle/replay defects, separate replay from ensemble calibration, and export read-only telemetry | python -m uff.spectral_witness, python -m uff.qec_gate, python -m uff.audit_events |
New in v5.1.0 |
The default uff CLI remains focused on galaxy and compact-object analysis.
Sky-audit and assurance interfaces remain separate so model fitting, evidence
admission, and scientific interpretation cannot silently borrow authority from
one another.
UFF v5.0.0 made disputed catalogue-level celestial-node claims testable under frozen and survey-aware contracts. v5.1.0 addresses the next question:
Even when the scientific method is frozen, how do we make the evidence boundary itself fail closed and make its assurance level impossible to misread?
The resulting stack is:
BEFORE OBSERVATION
SPECTRAL witness
contract + catalogue + support identity commit
|
v
UFF computation
|
v
QEC boundary gate
strict structure + hashes + cross-links + replay
ADMIT / REJECT
|
v
statistical-mechanics guardrail
replay != ensemble calibration
|
v
SONIFICATION audit telemetry
receiver-neutral events; external receivers optional
A claim that is incomplete remains CONTRACT_NOT_EXECUTABLE. A bundle that is
intact but not replayed remains INTEGRITY_ONLY and is not admitted. A
successful replay remains computational assurance, not proof that the null
ensemble or physical interpretation is correct.
git clone https://github.com/QSOLKCB/UFF.git
cd UFF
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .For development and tests:
python -m pip install -e ".[dev]"
pytestpython -m uff fit \
--csv DEMO_GALAXY.csv \
--gal DEMO_GALAXY \
--models baryons,nfw,burkert,mond-rar,uff-empirical \
--restarts 24 \
--out outputs \
--sonifyCanonical CSV columns are:
R_kpc,V_obs_kms,e_V_kms,V_gas_kms,V_disk_kms,V_bul_kms
Short SPARC aliases are also accepted. See Data format and Model definitions.
Included model families are Newtonian baryons, NFW and Burkert halos, MOND/RAR variants including an explicitly approximate EFE sensitivity proxy, a repository-specific empirical UFF curve family, and an optional weak-field central SMBH term.
The fit pipeline reports likelihood diagnostics, chi-squared, RMSE, AIC/AICc, BIC, relative information-criterion weights, bound hits, full residual arrays, and SHA-256 input receipts. Optional posterior sampling, plots, and deterministic sonification remain available.
python -m uff compact-object \
--mass-msun 4300000 \
--spin 0.5 \
--velocity-dispersion-kms 100 \
--out outputs/sgr-a-scale-report.jsonThis reports Kerr characteristic radii, the sphere of influence, the selected LQG area-gap convention, and scale ratios. LQG is not used in the galaxy likelihood. See Scientific status.
UFF-SLFA asks a narrow question:
Does an independently selected catalogue show a preregistered excess of a declared anomaly inside spherical caps around frozen celestial nodes, under a null model that preserves the relevant selection structure?
A uff.sky-lattice-claim.v1 contract freezes node IDs and ICRS coordinates,
one cap radius, the anomaly predicate, catalogue/holdout/weight/stratum
declarations, the null model and deterministic seed, decision thresholds, and
anti-circularity declarations.
Run and verify an audit:
python sky_lattice_audit.py run \
--catalogue frozen_catalogue.csv \
--contract examples/sky_lattice_contract.example.json \
--out runs/frozen-claim
python sky_lattice_audit.py verify \
runs/frozen-claim/manifest.json \
--catalogue frozen_catalogue.csvSLFA supports shared RA shifts, Haar-uniform proper SO(3) rotations, and stratified label permutations. It uses finite plus-one empirical p-values, Holm family-wise correction, and TFT-derived invariance checks for geometric null transforms.
Read the full Sky-Lattice Falsification Protocol.
Sheridan wraps an ordinary SLFA claim in uff.sheridan-crucible.v1 and makes
telescope/catalogue geometry part of the frozen experiment.
It adds explicit survey-support quadrature, masks and fractional coverage, completeness filtering and inverse-completeness weights, normalized spherical von Mises-Fisher KDE, leave-one-out/adaptive bandwidths, mask-aware edge renormalization, survey-availability-matched SO(3) rotations, nuisance-model comparison, predictive checks, synthetic anomaly-label injection, bounded exact source execution, and replayable SHA-256 evidence bundles.
Generate a deterministic full-sky support grid:
python -m uff.sheridan support-grid \
--points 4096 \
--out full_sky_support.csvRun and replay a frozen Sheridan contract:
python -m uff.sheridan run \
--catalogue frozen_catalogue.csv \
--support frozen_support.csv \
--contract examples/sheridan_contract.example.json \
--out runs/sheridan-example
python -m uff.sheridan verify \
runs/sheridan-example/manifest.json \
--catalogue frozen_catalogue.csv \
--support frozen_support.csvRead the full Sheridan Siege Engine protocol.
Read UFF Defense in Depth for the complete authority model and the versioned v5.1.0 technical report source. The rendered PDF is included in the Zenodo upload bundle.
The QEC-inspired gate performs strict canonical JSON and artifact validation, recomputes child hashes and contract cross-links, constructs an externally anchorable deterministic root, and then requires fresh domain replay before admission.
python -m uff.qec_gate \
runs/frozen-claim/manifest.json \
--catalogue frozen_catalogue.csvIntegrity inspection is deliberately weaker and never admits:
python -m uff.qec_gate \
runs/frozen-claim/manifest.json \
--integrity-onlyAssurance states:
| State | Meaning | Admitted? |
|---|---|---|
INTEGRITY_ONLY |
Strict structure and hashes passed; no fresh replay | No |
REPLAY_VERIFIED |
Strict checks passed and frozen result replayed | Yes |
REJECTED |
Structural, semantic, hash, receipt, anchor, or replay failure | No |
See QEC Boundary Gate.
Commit identity-bearing inputs before running or inspecting the audit:
python -m uff.spectral_witness commit precommit.json \
--contract frozen_contract.json \
--catalogue frozen_catalogue.csvFor Sheridan add --support frozen_support.csv.
Reveal through a replay-verified evidence bundle:
python -m uff.spectral_witness reveal \
precommit.json runs/frozen-claim/manifest.json \
--contract frozen_contract.json \
--catalogue frozen_catalogue.csv \
--expected-commit <externally-anchored-digest>v5.1.0 binds the witness's canonical contract digest to the contract actually verified from the replayed recipe. A witness for contract A cannot admit a replay-valid bundle produced from contract B.
A local commitment proves identity, not chronology. Historical preregistration still requires an independent timestamped or signed anchor.
The interpretation guardrail formalizes:
INPUTS_COMMITTED
-> INTEGRITY_VERIFIED
-> REPLAY_VERIFIED
-> ENSEMBLE_CALIBRATED (future; separately earned)
-> SCIENTIFICALLY_DEFENSIBLE (external scientific judgement)
No lower rung implies a higher rung. A future ENSEMBLE_CALIBRATED state must
be earned with explicit type-I-error, power, negative-control, survey-systematic,
convergence, seed-block, and multiplicity calibration. No quantum many-body
model is imported into ordinary catalogue resampling by this analogy.
See Statistical Mechanics Guardrail.
Generate deterministic receiver-neutral telemetry outside the evidence bundle:
python -m uff.audit_events \
runs/frozen-claim/manifest.json \
--catalogue frozen_catalogue.csv \
--out telemetry/frozen-claim-events.jsonCanonical event fields describe trust-boundary and already-recorded scientific states. Tempo, hertz, MIDI, timbre, loudness, waveform, and rendered audio are noncanonical receiver choices. Telemetry has zero authority over bundle admission or scientific verdicts.
SLFA, Sheridan, and the v5.1.0 gate separate five questions that are often blurred together:
- Was the claim fully specified?
- Are the artifacts intact?
- Does numerical replay reproduce the stored result?
- Is the statistical ensemble calibrated for the inferential claim?
- Is the scientific model and sampling design defensible?
A bundle may be computationally perfect and scientifically biased. Hashes prove byte identity; deterministic replay proves computational consistency; neither proves that the sampling frame, anomaly predicate, null distribution, or causal interpretation is appropriate.
Sheridan bundles contain:
recipe.json
density.json
nodes.csv
models.json
injection.json
decision.json
manifest.json
The QEC gate may additionally write qec_gate.json after successful replay;
the receipt is self-hash-excluded and validated against the full deterministic
receipt payload.
Failed and untestable nodes remain visible. Null outcomes are not deleted. A positive association remains an association, not automatic evidence for its proposed cause.
The repository includes a content-addressed public-claim ledger for the Logvinovich celestial-node claims. It preserves incompatible coordinate sets, radii, query predicates, reported counts, and unresolved fields without choosing a preferred version on the claimant's behalf.
Key records include:
- Public Claim Ledger
- Public Claim Source Manifest
- Machine-readable public claim profile
- Independent assessment response
- Independent assessment source manifest
- Machine-readable assessment action ledger
The governing assessment remains intentionally uncomfortable:
The crucible's syntax is largely formalised. Its statistical calibration still needs validation, and the claimant has not supplied one stationary claim to place inside it.
The proposed uff.sheridan-crucible.v2 expansion remains a roadmap, not an
implemented contract in v5.1.0.
| Schema / protocol | Role | Executable? |
|---|---|---|
uff.rotation-curve-summary.v4 |
Galaxy fit and comparison result | Output schema |
uff.sky-lattice-claim.v1 |
Frozen catalogue-level celestial-node claim | Yes, when complete |
uff.sheridan-crucible.v1 |
Survey-aware wrapper around a frozen SLFA claim | Yes, when complete |
uff.qec-bundle-root.v1 |
Deterministic evidence-root payload | Yes, verifier-internal |
uff.qec-boundary-gate.v1 |
Replay-verified gate receipt | Yes, verifier-generated |
uff.spectral-witness.v1 |
Pre-observation input-identity commitment | Yes |
uff.audit-event-stream.v1 |
Receiver-neutral read-only audit telemetry | Yes, non-authoritative |
uff.public-claim-profile.v1 |
Provenance record containing unresolved public claim versions | No by design |
uff.independent-assessment-response.v1 |
Machine-readable implementation roadmap | No; governance record |
uff.sheridan-crucible.v2 |
Proposed publication-grade contract expansion | Planned, not implemented |
ENSEMBLE_CALIBRATED |
Future assurance state | Planned, not implemented |
uff/
cli.py # galaxy and compact-object CLI
models.py # baryons, halos, MOND/RAR and UFF empirical law
fitting.py # deterministic model fitting and comparison
sampling.py # optional posterior sampler
compact.py # Kerr/SMBH and LQG scale diagnostics
sky_contract.py # SLFA contract validation
sky_geometry.py # spherical geometry and SO(3) invariants
sky_statistics.py # audit statistics and null models
sky_artifacts.py # SLFA bundles, integrity and replay
sky_audit.py # SLFA public API and CLI
sheridan_contract.py # survey-aware contract validation
sheridan_density.py # vMF KDE, masks and edge correction
sheridan_models.py # nuisance comparison and injection recovery
sheridan_artifacts.py # Sheridan bundles and replay
sheridan.py # Sheridan public API and CLI
qec_gate.py # strict defense-in-depth admission boundary
spectral_witness.py # pre-observation input identity commit/reveal
audit_events.py # receiver-neutral read-only forensic telemetry
examples/ # frozen example contracts and governance ledgers
tests/ # model, geometry, replay, provenance and assurance regressions
docs/ # protocols, scientific boundaries and manifests
papers/ # methods papers, formal reports and references
zenodo/ # release-specific archival upload guidance
- Rotation curves alone do not settle dark matter versus modified gravity.
- Algebraic MOND relations are not full AQUAL/QUMOND solvers for flattened disks.
- Information-criterion rankings depend on the candidate set and data contract.
- The UFF empirical profile is not derived from a covariant field theory.
- Catalogue diagnostics such as excess noise, uncertainty, or missing values are not physical objects without an independently validated object-level model.
- Broadband colour differences are not spectral resonances without a bandpass-aware spectral model.
- Cross-catalogue agreement is not automatic statistical independence when catalogues share objects, source-density structure, or systematics.
- Preregistration prevents later rule changes; it does not repair a biased sampling frame or make previously inspected data blind.
REPLAY_VERIFIEDis computational assurance, not ensemble calibration.- A local SPECTRAL witness establishes identity, not historical chronology.
- SONIFICATION telemetry is an observation aid, not additional evidence.
- The current exact Sheridan KDE is intentionally bounded by a frozen source limit rather than silently changing algorithm or exhausting memory.
- QSOL UFF v5.1.0
- v5.1.0 Defense-in-Depth Technical Report source - the rendered PDF is included in the Zenodo bundle
- Zenodo v5.1.0 upload guide
- QSOL UFF v5.0.0
- UFF Sheridan Crucible v1.1.0
- UFF-SLFA v1.0.0
The currently published archive is v5.0.0:
Slade, T. (2026). QSOL UFF v5.0.0: Reproducible Astrophysics and Falsification Laboratory (Version 5.0.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.21830630
v5.1.0 is prepared as a new Zenodo version of that record. Its version DOI will be assigned when the v5.1.0 deposit is published. Until then, the DOI above must be treated as the immutable v5.0.0 archive, not as the v5.1.0 DOI.
Machine-readable release metadata are in CITATION.cff and .zenodo.json. The supporting Zenodo package includes a post-publication checklist identifying every place where the newly assigned v5.1.0 DOI should be patched after publication.
Analyses must also cite the primary scientific sources for every physical model, catalogue, and statistical method used.
Apache License 2.0. See LICENSE.
Maintainer: Trent Slade / QSOL-IMC
GitHub: QSOLKCB