Companion code for The galactic acceleration scale from a compact phase: what the topology fixes, and what it does not (V. Luna, 2026). Each program is a small, self-contained check that anyone can run in a few seconds.
▶ New here? Read
STATUS.mdfirst — one page.It states what is claimed, what is open (three numbers), what was withdrawn, and what is closed, with pointers to the derivation for each. Everything below is the detail behind it.
How to read the documents in this repo.
DERIVED_SUMMARY.mdcarries the current status of every claim and is the file to trust. The*_prereg.mdand gate-record files (G0_…,G1_…,G2_…, and similar) are dated records: they state what was predicted and computed at the time and are deliberately not rewritten when a later audit changes the answer, because rewriting them would falsify the log. Several carry a superseded banner pointing to the correction. If a gate record andDERIVED_SUMMARY.mddisagree,DERIVED_SUMMARY.mdis current.The same applies to the
.pyscripts. They are dated records that print what was computed at the time. Where a later audit changed the reading, the script carries a banner at the top saying so — read the banner before the output. The computations themselves are correct and are deliberately left running as written; what a banner corrects is the interpretation, not the numbers.
What these are. Demonstrations and consistency checks — not proofs. They show that the framework’s mechanisms produce the stated behavior, and that it reproduces known physics where it should. Each result below is labeled by what it establishes. Nothing here claims uniqueness or proves the theory; that is what experiment is for. The framework is in progress; this is what it does so far.
The whole thing rests on four scales (E₀, ℓ₀, τ₀, a₀) and three equations (mc² = hf, time = the turning of phase, force = the slope of the phase) — see the paper. These programs exercise those few pieces across five orders of magnitude in scale: particle → planet → galaxy → cosmos.
New here? Read WHAT_TFT_IS.md first — a short mathematical reading of what
the framework is (one circle-valued phase field, and why so much standard physics turns out to be
its geometry and topology).
Convocatoria / collaboration. This project’s open call for scientific collaboration — its
philosophical roots, epistemic discipline, open problems, and why its intellectual home is Mexico —
is in CONVOCATORIA.md (in Spanish). The quantum-sector experiments it describes
(teotl_qc.py, teotl chsh.py, maxcut tft.py, verify derivations.py, winding_solver.py) live
in this repository alongside the demonstrations below — including the CHSH/Bell negative result
(the local field saturates S = 2.0000 and does not cross it), reported with the same discipline as
the positives.
pip install numpy
python3 verify_conservative_1d.py # or any file below — each prints its own result
Requirements: Python 3.8+ and NumPy. No other dependencies. Every file is standalone.
Labels: [derived] follows from the framework · [consistency] reproduces a known result, not a unique prediction · [input] a value the framework does not yet fix.
| file | what it shows | status |
|—|—|—|
| verify_conservative_1d.py, verify_force_law_sign.py | a particle’s rest mass = 8√Λ·E₀ (to 1e-9); it obeys F = Ma | derived |
| verify_breather_1d.py | a particle as a standing wave — mass entirely in the motion | derived (exact in 1D) |
| verify_oscillon_3d.py, verify_qball_3d.py | a lone phase can’t hold a 3-D particle; a conserved charge (Q-ball) can | derived (charge-vs-alt. not fully isolated) |
| file | what it shows | status |
|—|—|—|
| verify_goldstone_1r2.py, verify_force_sign.py | electromagnetism: a 1/r² Coulomb force, like charges repel | derived |
| verify_poisson_metric.py, verify_gravity_coupling.py | gravity from energy: universal 1/r attraction; matter and antimatter both fall (cf. CERN ALPHA-g 2023) | derived, matches experiment |
| verify_G_as_rate.py | Newton’s G read as (rate of time)² / density | reframing, not a value |
| file | what it shows | status |
|—|—|—|
| tft_solar_system.py, stage3_orbits.py, stage5_mercury.py | a solar system from one calibration: 8 periods to <0.1%, Kepler’s third law, Mercury 42.9″/century | consistency (closed orbits by-construction; Mercury is the standard GR value, not unique) |
| file | what it shows | status |
|—|—|—|
| verify_a0_g1.py … g5.py | the galactic acceleration scale a₀ ∝ cH₀ — set by the universe’s expansion | proportionality derived (and Milgrom’s, 1983); the coefficient 1/2π is NOT derived — withdrawn 4 Sep 2026, see A0_STATUS.md |
| milkyway_rotation.py | Milky Way rotation curve to ~3%, baryons only; tracks the 175-galaxy acceleration relation | fits (transition shape model-dependent, as in MOND) |
| verify_a0_g4.py | the mass–rotation (Tully–Fisher) exponent = exactly 4 (observed 3.85 ± 0.09) | derived, parameter-free |
| file | what it shows | status |
|—|—|—|
| verify_chiral_g1.py, verify_chiral_g2.py | baryon number, magnetism, and chirality are three readings of one topological quantity (winding + linking); their anomaly link is automatic | linkage derived; the size of the matter–antimatter imbalance is an initial condition |
Full narrative with all gates and verdicts: GENERATIONS_PROGRAM.md
and its companion WHERE_R_LIVES.md (the soliton-interior study).
Pre-registrations: G0_prereg_spectrum.md, M0_prereg_mass_interference.md,
E0_prereg_epsilon.md, SINT0_prereg_r.md, SPEC0_prereg_spectrum.md, SPEC0b_prereg_nl3.md.
| file | what it shows | status |
|---|---|---|
koide_selfdual_g1.py … g5.py |
the Koide relation (predicts the tau mass to 0.006%) reduced to ONE coefficient; symmetry, local-energetic, and collective origins each closed by a pre-registered gate | characterization derived; three mechanism classes excluded |
spectrum_sp1_breathers.py, spectrum_sp23_qball_tower.py |
a three-state, equal-charge particle tower exists in the framework — but excitation towers are near-degenerate: generations are not vibrations of one object (1D exact + 3D numerical) | tower derived; lepton pattern excluded |
mass_m1_cancellation.py |
all three lepton masses = one scale, 120° phases, and ONE angle ε = 2.27° from an exact zero — the electron is anomalously light (m_e ∝ ε²), at the near-singular point of the generation matrix | derived (exact restatement) |
mass_m2_interference.py |
the data forces real, sign-changing interference; the framework’s Q-ball binds an internal “generation dial” whose energy is exactly the square of a real amplitude — the mechanism exists (A, δ inserted, not derived) | mechanism demonstrated; coefficients open |
mass_m3_epsilon.py |
what sets ε: all polynomial internal energetics to degree 5 excluded (~27,000σ); ε classically unprotected; the 2/9-rad form survives at 0.9σ — falsifiable with a better tau mass | honest FAIL: ε remains free |
mass_m4_chirality.py |
the cancellation point = a pure winding-reversal-odd state (the electron is 99.85% “helical”); couplings are winding integers (universal) while masses are amplitudes (hierarchical) — exact lepton universality + 3477× mass ratio, simultaneously, as observed | derived within the construction; weak-channel link proposed |
epsilon_e1_topo.py |
is the offset ε a winding fraction of a turn? tested against the whole closed class — nothing within 212σ | topological quantization excluded |
epsilon_e2_breaking.py |
ε must respect the 120° symmetry (rigidity theorem); it lives in one interference channel whose pitchfork threshold is what makes the electron light — leaving one continuous ratio r ≈ 0.318 | rigidity derived; one ratio open |
epsilon_e4_scale.py |
Koide/ε is exact at the physical (pole) masses, degrading ~186× under short-distance running — where a theory of dressed on-shell objects would put it | consistency (one-loop) |
sint_r_interior.py |
r is a gauge-invariant flux (mass sums are exactly δ-independent); the loose three-lump “molecule” picture is excluded; r’s seat is a single merged soliton | flux derived; molecule excluded |
spec_internal_spectrum.py |
the soliton’s internal (Bogoliubov–de Gennes) spectrum: a bound triangular ℓ=3 shape mode = the generation dial, made concrete (solver validated on the Goldstone + translation zero modes) | dial mode computed, validated |
spec_nl3_condensate.py |
a single-mode condensate has a flat dial (rotational Goldstone) → r is a two-sector relative phase (a flux) — the most protected place, explaining why it survived every earlier method | derived |
Full narrative: THE_PARTICLE_SECTOR.md. Pre-registrations:
SPIN0_prereg_statistics.md, NU0_prereg_neutrino.md, QCD0_prereg_confinement.md.
One linking invariant carries spin, statistics, baryon number, and chirality.
| file | what it shows | status |
|---|---|---|
spin_statistics.py |
fermions from a bosonic field: a spherical Q-ball is a spin-0 boson; a twisted vortex loop with odd self-linking is a spin-½ fermion (Finkelstein–Rubinstein). Leptons are linked loops, not plain Q-balls | linking computed; spin/statistics derived |
neutrino_parity.py |
the neutrino = the pure winding-odd (massless-chiral) limit of the same lepton dial (the electron is 99.85% of the way there); parity violation forced (100% V−A, no ν_R); large PMNS / small CKM from ν near-degeneracy vs charged-lepton hierarchy | derived (parity, ν); proposed (mixing) |
quark_confinement.py |
linear confinement: a quark is a winding-line end; the sine-Gordon term squeezes it into a wall of tension σ = 8√Λ = the kink mass → V(L)=σL. Meson=boson, baryon=fermion. One scale √Λ sets both hadron mass and confinement tension | tension computed; mechanism derived |
spec_selfconsistent.py |
the last mass number r (=A) bottoms out at the generation-mode excitation amplitude — an initial condition, not a derived number (the honest terminus of the mass program) | derived (a floor) |
Honest boundary: TFT’s U(1) field derives the mechanisms above but not the absolute scales (masses, Λ_QCD) or the non-abelian groups (SU(2)_L, color SU(3)) — named floors, open in TFT as they are elsewhere.
Full narrative: BLACK_HOLES.md. Pre-registrations:
BH0_prereg_blackhole.md, BHB0_prereg_bounce.md, BHE0_prereg_entropy.md,
ADE0_prereg_a0_darkenergy.md.
| file | what it shows | status |
|---|---|---|
bh_study.py |
horizon at r_s from TFT’s own inflow rate √(2GM/r) reaching c (the river model, not imposed); time (= phase cycling) freezes at the horizon; and — the distinctive part — no singularity: the bounded phase field caps the density → a regular Planck-density core | horizon derived route; singularity resolution TFT-native |
bh_bounce.py |
the core bounces (a squeezed Q-ball breathes, no collapse) from the φ⁶ “degeneracy pressure” — the same boundedness that kills the singularity; time-dilated into a Planck-star delayed burst (~10²² kg PBH bounces now) | bounce computed; observable model-dependent |
bh_entropy.py |
black-hole entropy ∝ area (not volume), computed as the entanglement entropy of the phase Goldstone across the horizon (Srednicki); the ¼ located as the induced-gravity coefficient (tied to G, a constrained floor) | area law computed; ¼ structural / floor |
a0_de_study.py |
dark energy = the same phase field (pNGB thawing quintessence), so w ≥ −1 always — no phantom crossing; matched to w₀ predicts wₐ ≈ −0.20 with mass ~H₀ (a₀-consistent; re-integrated 15 Aug 2026, supersedes −0.24). Sharp falsifier vs DESI’s phantom-preferring fit — as of Aug 2026 still in tension: DESI prefers wₐ < 0 with w₀+wₐ < −1, i.e. crossing w = −1 (2.7σ DESI+CMB / 3.2σ +SNe after the full-shape Lyman-α refresh, arXiv:2607.27410 — softer than the earlier 3.1σ / 4.2σ, same direction); see PREDICTIONS.md |
derived (falsifiable; currently in tension) |
verify_a0_sparc_fit.py |
the a₀ scale against real SPARC data, per galaxy (2696 points, 147 galaxies; upgrades verify_a0_g5.py from the published RAR summary to a direct fit): fitted RAR scale g† = 1.16×10⁻¹⁰, deep-MOND a₀ = 1.33×10⁻¹⁰, and the value cH₀/2π lands at 0.90–0.97 × g† (coefficient selected by the data, not derived — A0_STATUS.md) with the relation’s tightness reproduced (0.133 dex); scale universal wherever the data constrain it |
consistent within ~20% systematics (M/L, distances) |
Full narrative, with prominent caveats: QUANTUM_FROM_COMPACT_TIME.md.
Pre-registration: CHSH0_prereg_compact.md. This reproduces QM — it does not
beat it, and a Bell test cannot distinguish it; the value is conceptual.
| file | what it shows | status |
|---|---|---|
chsh_compact_time.py |
the local field saturates CHSH at S = 2.0000 (classical); an arbitrary time-loop reweighting is unconstrained and overshoots to 2.90 (super-quantum) — so “compact time lifts S>2” is vacuous until the closure comes from the actual field | computed (baseline + warning) |
chsh_closure.py |
TFT’s S¹ is a single-valued complex phase, so the hidden variable cancels → E(a,b)=cos(a−b) (no tuning, no-signaling), and a coherent phase is Tsirelson-capped at 2√2 automatically (2.828) — deriving the quantum value and ceiling. Quantum coherence = the phase closing on the compact time circle | derived; reproduces QM (open: a distinguishing test) |
born1..5_*.py |
the Born rule: equal amplitudes → equal weights by an exact envariance symmetry (born1); |c_k|² for all amplitudes from that symmetry alone, exponent 2 = coherent-superposition normalization (born3); continuous Malus P(+|θ)=cos²(θ/2) uniquely pinned by the closure (born4); one rule gives marginals + correlation + Tsirelson + Malus (born5). Pre-reg BORN0_prereg.md |
derived (structural, assumption-conditional); reproduces QM |
dis1_distinguish.py, dis2_ghz.py |
is there a distinguishing observable? Search of the natural channels (pre-reg DIS0_prereg.md): Bell is exactly degenerate at any loop size (hidden time-phase cancels); the temporal energy-comb differs but is 1/T-suppressed (unobservable at the cosmological loop, a microscopic loop excluded by continuous spectra); GHZ/Mermin reaches M=4=QM. No feasible distinguisher — empirically degenerate; one open edge (does the field give the full 2ⁿ tensor space? → resolved in §J, tens_completeness.py) |
searched; degenerate w/ QM (honest negative) |
uncertainty_s1.py |
the uncertainty principle, the third pillar: the single-valued S¹ phase makes the number/Noether operator N=−i∂_θ integer (charge quantization) (noun corrected 18 Aug 2026, UNC1 — this read “winding”; N generates phase rotations, so it is the Noether/number charge, not the topological winding. Carruthers–Nieto, cited below, call it the number operator.) with exact [N,cosθ]=i sinθ → number–phase uncertainty ΔN·Δθ ≥ ½ (Carruthers–Nieto), saturated by von Mises states, → Heisenberg ½ localized. Same S¹ gives charge quantization + correlations/Born + uncertainty | derived (clean theorem, no degeneracy caveat) |
Full narrative, with the program’s sharpest honest negative:
FOUNDATIONS_AND_LIMITS.md.
| file | what it shows | status |
|---|---|---|
pw_emergent_time.py |
time emerges from the phase: a timeless constraint (Ĥ_C+Ĥ_S)|Ψ⟩=0 with the S¹ phase as a Page–Wootters clock reproduces Schrödinger evolution on conditioning (fidelity 1); emergent time cyclic, comb spectrum → the internal-phase S¹ and the time-S¹ are one structure | PASS (structural); reproduces QM |
scale_darkenergy.py |
one circle at H₀ = time + charge + a₀ + dark energy: a₀ ∝ cH₀ (at cH₀/2π, 87% of obs; coefficient not derived), thawing w≥−1 always, w₀≈−0.88→wₐ≈−0.2, a₀↔w locked (a confirmed phantom crossing falsifies it — DR2 currently prefers one, see PREDICTIONS.md) |
PARTIAL; absolute scale = input |
meas3_selection.py, meas4_classical_arrow.py |
measurement as loop-closure: only definite branches close (single outcome, no branching), einselection reproduced, E>0 gives a clock arrow; which outcome + thermodynamic arrow = boundary floors | PARTIAL |
tens_completeness.py |
the sharp limit: an economical (classical) S¹ field is entanglement-bounded — reproduces product/GHZ/area-law (why CHSH/Born/GHZ passed) but not volume-law → falsified by quantum supremacy; full 2ⁿ QM needs quantizing the field (= standard QFT). Cannot be economical-classical and full QM | RESOLVED-NEGATIVE |
swmp_tension.py |
dark energy needs a super-Planckian f≳1.45 M_Pl (swampland tension); monodromy (wind one circle ~15×) is the one-S¹-native evasion → a winding floor; the R³ uncertainty scale a₀ is decoupled/protected (a₀ = the field’s de Sitter fluctuation) | PARTIAL |
DERIVED_SUMMARY.md — a scale-by-scale summary of what is derived, what is reproduced by
construction, and what remains an open input (with each open number named: G, the cosmological
constant, the coincidence problem, the baryon asymmetry).
Across every result: the framework derives mechanisms and scale-relations without free parameters, and carries one calibration constant per absolute scale. The remaining absolute numbers (G, |Λ|, a₀’s exact coefficient, the baryon asymmetry) each reduce to a problem that is open in every framework — not a gap unique to this one.
The same phase-settling dynamics studied here as physics is also a practical solver. It is set
up as a signed MAX-CUT / coupled-oscillator optimization, lives in this repository
(winding_solver.py, maxcut tft.py, teotl_math.py), and benchmarks in the band reported for
oscillator Ising machines (see CONVOCATORIA.md).
Correction (13 August 2026) — the attribution, not the solver. An earlier version of this section said the solver works because “the field relaxes and minimizes frustration.” Measurement does not support that. The solver’s architecture is settle → random-hyperplane rounding → 1-opt polish, and a controlled comparison — identical rounding and polish, settling switched on versus off — finds the settling contributes −0.19% over 72 paired runs (Wilcoxon p = 0.42, 28 wins / 37 losses): no detectable contribution. The classical post-processing does the work.
winding_solver.pyshares the identical polish (see its own docstring). The cut values are unchanged and the benchmarks stand — what is withdrawn is the claim that the field settling is what produces them. A second test on discrimination rather than optimisation (kinetic proofreading, the regime chosen to favour the field) reproduced the biology but found coupling loses 50 of 50 paired trials. Reported because it was measured, and because it was never previously tested.
Its provenance and its uses form one chain:
maxcut tft.py’s own docstring: “NOT a TFT physics
simulation”).WindingSolver over a ConstraintGraph), validated
against simulated annealing.engine/* branches.One honesty rule carries across all three: the solver is deterministic oscillator dynamics — fully explainable, on-device — never marketed as “AI,” and the field language model (TeotlAGI) is kept entirely separate from both the solver and any application. Theory, solver, and product each keep their own home; this section is the link between them, not a merge of them.
If you use this code, please cite the archived release:
Concept DOI (always resolves to the latest release — cite this):
https://doi.org/10.5281/zenodo.22101610
This version (v1.0.0): https://doi.org/10.5281/zenodo.22101611
Or use CITATION.cff in the repository root, which GitHub renders as a ready-made citation.
MIT — see LICENSE.