>[!warning] >This content has not been peer reviewed. # Budget-aligned development (Reality Engine) Aligning the engine with the theory’s **informational budget** and implementing tests that treat the PC substrate as the theory’s finite resource. --- ## 1. Engine updates ### 1.1 Budget-aware path sampling (heuristic, not RST-derived) - **Rule (implementation):** Number of path candidates ∝ local $\mu$: when `local_mu < 1`, `n_effective = max(10, min(n_paths, int(n_paths * μ)))`. - **Status:** **Not derived** from RST axioms. A1–A5 do not state that the number of path samples is a function of μ or Ω; this is a **heuristic** (low-μ → fewer samples). See [[Informational clock and path sampling (RST derivation)]] for the derivation check. Present as implementation choice, not as axiom-derived. ### 1.2 Informational clock (RST-derived) - **Rule:** Velocity = $\Delta d / \Delta \mathrm{Tick}$, $d$ = graph distance (A5 path cost = sum of $1/\mu$), Tick = one ledger update (A4: one discrete translation). No absolute time. - **Derivation:** A4 → time = count of substrate updates; A5 → $d$ = path cost. So $v = \Delta d/\Delta \mathrm{Tick}$ and $a = \Delta v/\Delta \mathrm{Tick}$ are well-defined and derived. See [[Informational clock and path sampling (RST derivation)]]. - **Documentation:** In [[HPC and computability (Reality Engine)]] §5 and in test_suite: all acceleration/velocity use graph distance and tick. Time dilation emerges from budget. ### 1.3 Budget-driven coarse-graining (Wilson functor) - **Requirement:** When Resolution Tax ($\Phi_{\min}$) to maintain nodes exceeds a local budget threshold, collapse nodes into a **super-node** that inherits summed $Q$ and $S$. - **Scale-invariance:** A5 relational friction for a signal past the cluster must equal that past the super-node. **Implemented:** `rst_engine.graph_observables.coarse_grain_super_node` returns (external_W_after, effective_mu): subtracts internal_phi_min from external_W_before; optional I_eff, N_eff, n solve for Ω and effective_mu = Ω/W_after (RST fidelity). Litmus tests build the super-node by hand with lockstep μ; this function supports automatic cluster→super collapse. --- ## 2. New tests ### 2.1 Log-radial MOND scan - **Spec:** 1D chain with positions $base \cdot scale^i$ (log-spacing). More resolution near the mass, fewer nodes in deep space; informational density roughly constant. - **Config:** `config/log_radial_mond.json` (generated by `write_log_radial_config`). Run: `rst_reality_engine_test_suite.py --run log_radial [--micro]`. - **Goal:** Acceleration vs distance (log scale) over many decades to see MOND kink ($a_0$). ### 2.2 External Field Effect (EFE) - **Spec:** Same radial setup; Run A = low global noise (isolated), Run B = high global noise (external field). Implemented as different `initial_H` (high $H$ → high $a_0$ → high $N$). - **Prediction:** Internal attraction in B weaker than in A. - **Run:** `rst_reality_engine_test_suite.py --run efe [--micro]`. Outputs: `tests/results/efe_report.txt`, `efe_comparison.png`. - **Note:** Micro run can show opposite trend (B stronger than A) depending on scales; report marks result as PASS only when mean |acc| in B < A. Parameter tuning or longer runs may be needed to observe EFE. ### 2.3 Scale-invariance (coarse-graining) - **Verification:** When super-node is implemented, two setups (many nodes vs one super-node with same total $Q$, $S$) are run; A5 friction (e.g. graph distance past the cluster) is identical (Litmus 3.0). See [[HPC and computability (Reality Engine)]] §4 and [[Blueprint and guardrails (Reality Engine)]]. --- ## 3. How to run From the Reality Engine directory: - **All tests (micro):** `python rst_reality_engine_test_suite.py --run all --micro` - **All tests (long run):** `python rst_reality_engine_test_suite.py --run all` — MOND 200/300, log_radial 80/250, lensing 35×35/120, EFE 80 steps (8 ω), flicker 25×25/80. - **EFE only:** `--run efe [--micro]` (long: 200 nodes, 80 steps). - **Log-radial only:** `--run log_radial [--micro]` (long: 80 nodes, 250 steps). - **Progress:** `--progress 5` (or 25 for long runs) prints step progress. Summary and plots go to `tests/results/`.