This directory contains every script cited in the cascade series LaTeX sources, plus the shared primitives module and an archive of deprecated scripts. Scripts are grouped by role; each script is cited from a specific section of a specific paper (cross-references given below).
Every numerical script reads its Part 0 quantities from tools/cascade_constants.py — the single source of truth for the cascade's Gamma-function primitives, layer constants, and cosmological parameters. Exports:
- Layer function —
R(d) = Γ((d+1)/2) / Γ((d+2)/2);alpha(d) = R(d)² / 4;Omega(d) = 2 π^((d+1)/2) / Γ((d+1)/2);V_ball(d);N_lapse(d) = Γ((d+1)/2) · Γ((d+2)/2); observer exponentp(d). - Distinguished layers —
D_V = 5,D_0 = 7,D_GW = 14,D_1 = 19,D_2 = 217. - Cosmological parameters —
H0 = 66.78km/s/Mpc,Omega_m = 1/π,Omega_b = 1/(2π²),Omega_r = 1/(4π⁷),Omega_Lambda = (π−1)/π,N_eff = 3.044,c_km_s = 299792.458,M_PL_RED_GEV = 2.435e18. - High-precision namespace —
mpprovides the same functions viampmathfor arbitrary-precision computations (mp.R,mp.alpha,mp.Omega,mp.N_lapse,mp.p,mp.pi).
No free parameters are introduced anywhere in this tree — every number traces back to cascade_constants.py and ultimately to the cascade hypothesis.
All scripts are invoked from the repository root:
python3 tools/<subfolder>/<script>.pyPython 3.11+ is required. Dependencies are listed in tools/requirements.txt (numpy, scipy, matplotlib, mpmath, sympy). Install with:
pip install -r tools/requirements.txtCI uses Python 3.12; scripts are also tested locally under pyenv 3.11.9 (PYENV_VERSION=3.11.9 python tools/...).
tools/
├── cascade_constants.py Shared primitives (above)
├── requirements.txt Dependency list
├── build/ Scripts CI runs to produce the LaTeX build
├── generators/ Other artefact emitters (committed, not CI-run)
├── verifiers/ Verify structural / uniqueness claims in the series
├── closures/ Derive specific numerical closures cited in the series
├── model_checks/ Numerical model checks and cross-checks
└── archive/ Deprecated scripts kept for reference
Scripts in this folder are invoked from the LaTeX build workflows (.github/workflows/build-latex.yml and pr-latex-check.yml). They run in this order on every push and PR:
| Script | Role |
|---|---|
generate_predictions.py |
Generates src/generated/predictions-table.tex from PREDICTIONS.md (and the HTML table in web/index.html). |
generate_bao_table.py |
Generates src/generated/bao-table.tex and bao-values.tex from cascade cosmological parameters. |
check_xr_hyper_compliance.py |
Fails the build if any cross-paper \cite{paperK} is not wrapped in xr-hyper (\externaldocument declaration in the citing paper's preamble; \ref{paperK:label} for prose result references). |
check_latex_warnings.py |
Scans src/build/*.log after the LaTeX compile for undefined refs/cites, missing characters, overfull boxes, and other regression patterns. Fails the build on any hit. |
These four are the contract: editing them changes what CI enforces. Any other script that needs to run as part of CI should be added here, with the corresponding workflow step.
Scripts in this folder write files under src/generated/ (or web/) that are checked into the repository and \input-ed by the papers, but are not regenerated on every CI run. Re-run these manually when their inputs change.
| Script | Output | Cited in |
|---|---|---|
cascade_g_eff.py |
src/generated/cascade_g_eff.json |
Part VI §radiation bath |
tower_growth_simulator.py |
src/generated/tower_growth/summary.txt, src/generated/tower_growth/trace.json |
Part VI §tower growth (Issue #65) |
generate_logo_svg.py |
web/ SVG assets |
project website |
If one of these starts being run on every CI build, move it to build/ and add the corresponding workflow step.
Scripts in this folder verify claims that the series frames as theorems or as mechanically-checkable facts. They are cited inline from the proofs they support.
| Script | Verifies | Cited in |
|---|---|---|
verify_continuous_boundary.py |
Cascade invariant ~10⁻¹²⁰ is the unique argmax of the continuous boundary action on the distinguished layers | Part 0 §continuous boundary |
verify_selection_rule.py |
Three-flag decision procedure that assigns d* to each of the seven precision observables (Definition of observable-type) |
Part IVb §source selection, Prop prop:source-selection |
cascade_greens_function.py |
Eigenstructure of the cascade action's discrete Laplacian — the Green's function response is maximised at the assigned d* for each observable, to machine precision |
Part IVb §Green's function identity, §source selection |
action_uniqueness.py |
Uniqueness of the cascade action principle: first-order Euler–Lagrange forces the quadratic nearest-neighbour form with compliance alpha(d) = N(d)² / Ω₂ |
Part IVb Remark 4.8 |
Scripts here derive specific numerical closures quoted in the papers from the cascade primitives alone.
| Script | Derives | Cited in |
|---|---|---|
cascade_v_closure.py |
Electroweak VEV v via the marginal Green's function identity on S⁴ |
Part IVb Remark 4.9 |
cascade_unified_descent.py |
All backward-descent steps of the cascade agree with the forward construction (consistency check) | Part I §unified descent |
btz_cross_check.py |
BTZ boundary-action cross-check — confirms the Part II=III entropy/temperature identities reduce correctly in the (2+1)D limit without parameter fitting | Part II=III §BTZ cross-check |
derive_alpha_s_closure.py |
Strong coupling α_s closure via the α(d*)/χ^k structural form |
Part IVb §α_s closure (supporting computation) |
derive_2sqrtpi_no_dirac.py |
Verifies the 2√π factor appearing in the boundary Green's-function identity is forced without invoking a Dirac structure |
Part IVb §supporting computation |
Scripts here perform numerical checks that are not themselves proofs in the series but are cited as sanity checks, falsification tests, or "verified numerically" claims.
| Script | Checks | Cited in |
|---|---|---|
cascade_decoherence.py |
Decoherence coefficient from the cascade's spectral trace | Part II §decoherence |
cascade_decoherence_vs_tower_height.py |
Decoherence is insensitive to tower height — no approximation needed for the quoted value | Part VI §decoherence robustness |
Scripts in archive/ are retained for traceability but are not cited in the current series. They represent earlier computation paths that have been superseded. Do not cite these from new work.
| Script | Superseded by | Notes |
|---|---|---|
cascade_geometric_rd.py |
build/generate_bao_table.py |
Early geometric r_d computation |
cascade_geometric_rd_verify.py |
build/generate_bao_table.py |
Early verification pass for r_d |
desi_bao_recompute.py |
build/generate_bao_table.py |
Early DESI BAO recomputation |
desi_bao_sensitivity.py |
— | DESI sensitivity study (one-off) |
cascade_weinberg.py |
verifiers/verify_selection_rule.py + closures/ |
Early Weinberg-angle closure route |
compute_all_corrections.py |
Individual closures/ scripts |
Monolithic correction computer, split into per-observable scripts |
- Single source of truth. New scripts must import cascade primitives from
cascade_constants.py. Do not redefineR(d),alpha(d),Omega(d), or any Part 0 quantity locally. - Folder choice. If a script emits a file that LaTeX reads →
generators/. If it verifies a claim framed as a theorem or uniqueness result →verifiers/. If it derives a specific closure cited in the series →closures/. If it is a numerical cross-check or probe →model_checks/. - Citation. Any script cited from the
.texsources must be referenced by its full path\texttt{tools/<subfolder>/<script>.py}(with LaTeX-escaped underscores\_). - Archive, don't delete. Scripts superseded by newer work move to
archive/viagit mv, notrm.