>[!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/`.