@@ -1136,88 +1136,3 @@ Runtime lookup:
11361136 PersonaId + KernelHandle → cognitive configuration for this turn
11371137```
11381138
1139- ---
1140-
1141- ## § 18 — VSA Precision Tiers + Generational Compression (Father-Grandfather)
1142-
1143- ** Trigger:** 2026-04-23 — clarification that L4/L5 is the speed lane and must stay
1144- at fingerprint resolution; L3 is where precision lives; VSA is the wire format.
1145-
1146- ### Three precision tiers
1147-
1148- | Tier | Format | Size | Properties | Where |
1149- | ---| ---| ---| ---| ---|
1150- | ** Fingerprint** | ` [u64;256] ` = ` Fingerprint<256> ` | 2 KB (16 Kbit) | Hash-quantized. One-way (no unbind). SIMD-fast Hamming. | L4/L5 substrate (30 ns/bind) |
1151- | ** Vsa10k BF16** | ` [bf16; 10000] ` | 20 KB | Effectively lossless (Jirak noise floor not crossed). Supports ` unbind(role) ` . | L3 memory / cold storage |
1152- | ** Vsa10k f32** | ` [f32; 10000] ` | 40 KB | Fully lossless. Full bind/unbind algebra. | Offline training / precision UDFs |
1153-
1154- ** L4/L5 is the speed lane (motion, learning, fast dispatch).** The 16Kbit
1155- fingerprint is the right format there — shrinking it would leave the speed
1156- lane; inflating it to Vsa10k would blow the L3 memory budget at 30 ns/bind.
1157- This boundary is a hardware-budget invariant, not a design choice.
1158-
1159- ** L3 is where precision is affordable.** The callcenter operates at human-turn
1160- rate (seconds between commits), not substrate rate. Full Vsa10k BF16 at L3
1161- costs 20 KB/row — trivial at that cadence. Alternatively: ** RaBitQ** -quantized
1162- columns in Lance provide zero-copy ANN search at < Vsa10k RAM cost while
1163- preserving approximate unbind accuracy.
1164-
1165- ### VSA as the wire format
1166-
1167- VSA IS the wire format — the medium through which cognitive content travels
1168- between layers:
1169-
1170- ```
1171- Wire format: bundle(SPO triples) → trajectory [Vsa10k or Fingerprint<256>]
1172- Markov ±5 window → bundle last 5 trajectories → episodic context
1173- Markov ±500 window → bundle last 500 cycles → long-range context
1174- SPO role bind → bind(role_key, payload) → superposed into trajectory
1175- ```
1176-
1177- ` CognitiveEventRow ` is NOT the wire format — it is the BBB-safe SCALAR
1178- projection of the wire state. The wire (VSA trajectory) stays inside. The
1179- projection (Arrow scalars) crosses the gate.
1180-
1181- ### Father-Grandfather generational compression
1182-
1183- ** Motivation:** Per-cycle fingerprints accumulate at 2 KB/cycle. 10K cycles
1184- = 20 MB (manageable in hot tier). 10M cycles = 20 GB (cold storage, still
1185- feasible). But for full-precision Vsa10k cold storage at 20 KB/cycle,
1186- generational compression prevents unbounded RAM growth during replay.
1187-
1188- ** Hierarchy:**
1189-
1190- ```
1191- "Son" (hot tier, L4/L5):
1192- Per-cycle Fingerprint<256> rows — 2 KB each — fast, hash-quantized
1193- Lance version-tagged; last M rows in hot dataset
1194-
1195- "Father" (~100-cycle bundle, L3):
1196- MergeMode::Bundle over last ~100 per-cycle fingerprints
1197- → single Vsa10k BF16 (20 KB) representing 100 cycles
1198- → CK-safe (I-SUBSTRATE-MARKOV); saturating bundle preserves Markov property
1199- → 100 × 2 KB → 20 KB: 10:1 compression; unbind survives at full L3 precision
1200-
1201- "Grandfather" (~1000-cycle bundle, cold tier):
1202- MergeMode::Bundle over last ~1000 cycles (or over 10 Father vectors)
1203- → single Vsa10k BF16 (20 KB) representing 1000 cycles
1204- → 1000 × 2 KB → 20 KB: 100:1 compression; Markov property preserved
1205- → unbind(role, grandfather) = approximate role trajectory over 1000 turns
1206- ```
1207-
1208- ** Relationship to existing Markov windows:**
1209- - ±5 window → per-cycle fingerprint braid (existing, L4/L5)
1210- - ±500 window → episodic memory (existing, L3)
1211- - ±1000 window → grandfather bundle (new, L3/cold storage)
1212-
1213- ** CK safety proof (informal):** ` MergeMode::Bundle ` is commutative and
1214- associative in expectation (Johnson-Lindenstrauss + concentration-of-measure
1215- at rate ~ e^(−d), I-SUBSTRATE-MARKOV). Bundling 100 fingerprints into one
1216- Vsa10k is a saturating bundle; the Chapman-Kolmogorov property holds for the
1217- bundle as a whole — the state transition from "Son" to "Father" is a valid
1218- Markov step.
1219-
1220- ** Implementation note:** deferred. Current hot dataset stores fingerprints
1221- only. Father/Grandfather columns are Phase B additions when cold dataset
1222- accumulates > 10K cycles. No schema change to ` CognitiveEventRow ` required —
1223- generational bundles live in a separate Lance dataset (compression tier).
0 commit comments