palimpseste-max / notes /CAPACITY.md
thefinalboss's picture
capacity instrument: C_addr 10^1505 (SDM locations, β=4) + per-ball k* + occupancy probe
ec5ad36 verified
|
Raw History Blame Contribute Delete
2.33 kB
# PALIMPSESTE — capacity note (final, in-field)
Converged with the audit. Substrate is real VSA. One label corrected, one overclaim cut, one test now in-repo.
## Three numbers (Section 6 rewrite)
Do not collapse these.
| quantity | law | at D=20 000, M=1698 |
|---|---|---|
| **C_addr** | `0.14 · D · 2^(D/β)` with **β ≈ 4** | `2^5000 ≈ 10^1505` locations (headline) |
| **k\*_bundle** | linear in D | exact ≈ **0.02 D (~400)** · soft ≥0.99 ≈ **0.03 D (~600)** · theory `D/(2 ln M)` ≈ **0.067 D (~1300)** |
| **N_traces** | append-only log | 131 541 (white paper) / 2.2M (HF ULTRA) |
"Grows exponentially with D" is true for C_addr only. Retrieval is linear. The 10^1505 figure counts SDM locations, not decode capacity.
## Axiom 2 — why 100% still holds
`Phi(q)` is the bundle of `(w·v)` over the Hamming ball `N_r(q)`, LSH-indexed — not a global bundle of |M|. So k* applies **per ball**. 306/306 means no ball has crossed k*_exact yet, not k* = ∞.
As |M| grows, the only metric that matters is the occupancy histogram of `|N_r(q)|`.
## Confidence curve (D=8000, M=1698, 60 trials)
| per-ball load | 1 | 75 | 151 | 226 | 453 |
|---|---|---|---|---|---|
| exact-recover (all members outrank all non-members) | 1.00 | 1.00 | 0.98 | 0.35 | 0.00 |
| soft cleanup (frac of members in top-k) | 1.00 | 1.00 | 1.00 | 1.00 | 0.97 |
Exact cliffs at ~0.02 D. Soft degrades slowly (still 0.97 where exact is 0). k*_soft/D swept at 0.031 / 0.032 / 0.033 for D=2k/4k/8k.
## Forgetting
True as no erasure (append-only `(a,v,w)`). False as crosstalk-immune. A trace dies when `|N_r(a)| > k*`, not when you insert elsewhere.
## Invariants that stand (not "14 impossible")
- O(1) write, zero gradient
- no overwrite
- native bind/bundle analogy (HRR)
## Live test
```bash
python examples/occupancy.py --sweep
python examples/occupancy.py --live --limit 306
```
Flag any query with `|N_r(q)| > 0.02 D`. First flagged ball is the first predictable exact-recall failure.
## Caveat
If `retrieve`/`Phi` adds a cleanup pass or resonator, the **constant** in k* moves by a factor, not an order. Occupancy uses `Phi.retrieve` so it pins the *implementation* ball, not a paper rewrite.
Instrument: `palimseste/capacity.py`. Theory: Jolin plateau, bipolar v_A=1, k* = D/(2 ln M). β≈4 from the headline.