|
| 1 | +# BELIEF-ABI-RESTORATION-1 — Step 2 ADDENDUM: the copula correction |
| 2 | + |
| 3 | +> Status: ADDENDUM to `.claude/plans/belief-abi-step2-ruling-request-v1.md`, |
| 4 | +> operator-directed 2026-08-23. **Proposes NO mint.** Supersedes the ruling |
| 5 | +> request's Item 1 recommendation, which is retracted below. |
| 6 | +
|
| 7 | +## 1. The retraction |
| 8 | + |
| 9 | +The ruling request's Item 1 recommended: |
| 10 | + |
| 11 | +> ~~`Copula` → relation concept → classid reference~~ **RETRACTED.** |
| 12 | +
|
| 13 | +The C1–C4 probe result established only: |
| 14 | + |
| 15 | +``` |
| 16 | + COPULA ≠ RAIL PLACEMENT |
| 17 | +``` |
| 18 | + |
| 19 | +It did **not** establish: |
| 20 | + |
| 21 | +``` |
| 22 | + COPULA = CLASSID |
| 23 | +``` |
| 24 | + |
| 25 | +Those are unrelated conclusions, and the leap between them was the drift. |
| 26 | +Routing relation content through classid would smuggle instance/content |
| 27 | +semantics into the reading selector — the exact move the dock/route |
| 28 | +separation exists to prevent. The prior "a relation is a class" ruling |
| 29 | +addresses how OGAR *mints concepts*; it is not a licence to make `classid` |
| 30 | +a semantic payload field on relation rows. |
| 31 | + |
| 32 | +## 2. The law |
| 33 | + |
| 34 | +``` |
| 35 | + CONTENT NEVER TRAVELS IN CLASSID. |
| 36 | + CLASSID SELECTS THE READING. |
| 37 | +
|
| 38 | + classid = HOW these bytes may be read |
| 39 | + HHTL = WHERE the resident thing lives |
| 40 | + mask = WHAT part / group / region conducts |
| 41 | + edges = HOW addressed things relate |
| 42 | +
|
| 43 | + THE POPULATION DOES NOT MOVE. THE VIEW DOES. |
| 44 | + SHARE THE HIERARCHY, NOT NECESSARILY THE PAYLOAD. |
| 45 | + AN INDEX OR MASK MAY ACCELERATE THE ABI. |
| 46 | + IT MUST NEVER BECOME A SECOND ABI. |
| 47 | + MEASURE THE DISTRIBUTION BEFORE BUYING THE REPRESENTATION. |
| 48 | +``` |
| 49 | + |
| 50 | +Do not mint one classid for Inh, another for Sim, another for Impl. Do not |
| 51 | +smuggle predicates, relation identity, group identity, or belief identity |
| 52 | +into classid — for copula or for anything else. |
| 53 | + |
| 54 | +## 3. The machinery audit (what already exists for this job) |
| 55 | + |
| 56 | +| machinery | what it is | role in the copula question | |
| 57 | +|---|---|---| |
| 58 | +| `WideFieldMask` (`class_view.rs`) | up-to-64+ field/group bit selection, `intersect`/`union`/`is_disjoint`, fail-closed `EMPTY` | broad group CLASSIFICATION of terms/rows — cannot carry pairwise topology | |
| 59 | +| `RowFocusMask` / `AttentionFocusFacet` | antichain of HHTL regions; `covers`/`common_prefix`/`intersect`/absorbing `union`/conservative `difference` | hierarchical region selection — WHERE a group applies, never WHAT relates to what | |
| 60 | +| relation rows (SPO store, `graph/spo/`; `EdgeBlock` per `ClassView::edge_codec_flavor`) | resident many-to-many topology between addressed things | the natural carrier for arbitrary relation topology | |
| 61 | +| `spo::truth::TruthValue` | per-edge (frequency, confidence), revision shipped | truth rides the CLAIM row, never the group | |
| 62 | +| CE64 / band readings | causal topology + reasoning lens registers | orthogonal planes; not copula carriers | |
| 63 | + |
| 64 | +The rigid distinction, kept: **HHTL/V3 mask = hierarchical region |
| 65 | +selection; `WideFieldMask` = broad field/group selection; relation rows = |
| 66 | +arbitrary many-to-many topology.** A non-hierarchical relation is never |
| 67 | +forced into HHTL ancestry merely because HHTL is available. |
| 68 | + |
| 69 | +## 4. What was measured (`PROBE-COPULA-GROUP-MASK-1`, 9/9) |
| 70 | + |
| 71 | +Corpus: arena-closure output (Inh chain 1→5, 10 rows after closure) plus |
| 72 | +hand rows for Sim (cross-subtree), Impl, and two Rel verbs — 14 rows over |
| 73 | +8 terms across two HHTL subtrees. |
| 74 | + |
| 75 | +**Distribution (G-DIST):** Inh=10, Sim=1, Impl=1, Rel=2; max fan-out 5, |
| 76 | +max fan-in 4; occupancy 14/256 possible cells = **5.5% — sparse**. |
| 77 | +*Fixture bias, stated:* closure only derives Inh/Sim, so this corpus is |
| 78 | +Inh-dominated. The KJV right-corner corpus (Rel-heavy) and tactics output |
| 79 | +(Impl) are the distributions a workload-scale measurement still needs. |
| 80 | + |
| 81 | +**The Active-Directory shape holds** on shipped operators: |
| 82 | + |
| 83 | +- **G-F1** — every copula reconstructs EXACTLY from resident row content |
| 84 | + `(tag, verb)`; the group reading is lossy BY DESIGN (`Rel(7)` and |
| 85 | + `Rel(12)` share one group, stay distinct copulas). Content lives in the |
| 86 | + row; the group is ergonomics. |
| 87 | +- **G-F2** — `members(g)` and `memberOf(row)` are inverse VIEWS over one |
| 88 | + relation; the four group views partition all rows; resident bytes are |
| 89 | + untouched by both lookups. No duplicated canonical state. |
| 90 | +- **G-F4** — the cross-subtree Sim pair (0x40.\* ↔ 0x50.\*): neither |
| 91 | + address covers the other; the relation exists ONLY as a row. The |
| 92 | + hierarchy homes both ends; it does not pretend to BE the relation. |
| 93 | +- **G-F5** — ONE classid across all rows while four copulas differ; |
| 94 | + reconstruction never reads a classid. |
| 95 | +- **G-F6** — a 4-group and a 2-group reading coexist over the same bytes; |
| 96 | + insertion leaves prior rows byte-identical. Regrouping is view-only. |
| 97 | +- **G-F8** — reclassifying a row's group leaves its truth and stamp |
| 98 | + untouched: truth/provenance are properties of the CLAIM, never the |
| 99 | + classification. |
| 100 | +- **G-COMPOSE** — `group ∩ HHTL region ∩ truth-condition` runs as chained |
| 101 | + predicates over borrowed rows in one pass; nothing materialized. The |
| 102 | + "brutal mask" composition works. |
| 103 | + |
| 104 | +**G-F10 — the cost comparison, with its honest surprise.** At THIS |
| 105 | +fixture's scale the dense per-group t×t bitmap (32 B) is *cheaper* than |
| 106 | +sparse rows (784 B) — because t=8 is tiny. The scaling arithmetic inverts |
| 107 | +hard: dense grows as `groups × t²/8` (t=10⁴ ⇒ ~50 MB per group family |
| 108 | +regardless of content), sparse rows grow with actual relations. **Which |
| 109 | +wins is a property of the measured workload, not of the design** — which |
| 110 | +is exactly why the law says measure first. On these fixture numbers the |
| 111 | +addendum buys NOTHING. |
| 112 | + |
| 113 | +## 5. Falsifier status (operator's F1–F10) |
| 114 | + |
| 115 | +| falsifier | status | |
| 116 | +|---|---| |
| 117 | +| F1 exact copula reconstruction | **held** (G-F1) | |
| 118 | +| F2 member/memberOf without duplicated truth | **held** (G-F2) | |
| 119 | +| F3 mask forcing materialization sparse rows avoid | not triggered at fixture scale; re-test at workload scale | |
| 120 | +| F4 HHTL faking a many-to-many | **held** (G-F4 — the row carries it) | |
| 121 | +| F5 classid carrying content | **held** (G-F5) | |
| 122 | +| F6 group updates repacking the population | **held** (G-F6) | |
| 123 | +| F7 sidecar becoming a second object universe | not exercised (no sidecar built); fence stands | |
| 124 | +| F8 truth/provenance on the group instead of the claim | **held** (G-F8) | |
| 125 | +| F9 exact inverse lookup + provenance under grouping | **held** (G-F1+G-F2+G-F8 jointly) | |
| 126 | +| F10 mask denser than sparse rows for the workload | **measured both ways at fixture scale**; workload-scale open | |
| 127 | + |
| 128 | +## 6. Up/down inheritance vs relation topology (deliverable point 8) |
| 129 | + |
| 130 | +What CAN ride HHTL inheritance without confusing hierarchy with relation |
| 131 | +topology: **applicability and scope** — where a group's classification |
| 132 | +applies, where support generalizes (`common_prefix` up), where a falsifier |
| 133 | +propagates (`covers` down). What CANNOT: the pairwise relation itself. |
| 134 | +The Sim row is the measured witness: its endpoints share only the class |
| 135 | +root, and any attempt to express it as ancestry would misplace it. The |
| 136 | +hierarchy is shared; the payload is not necessarily. |
| 137 | + |
| 138 | +## 7. V4 / BPE / OGAR-loco (deliverable point 7) |
| 139 | + |
| 140 | +Left as MEASURED ALTERNATIVES, not adopted: a recurring |
| 141 | +`group ∩ region ∩ condition → behaviour` selection that survives |
| 142 | +falsification is a candidate for a learned routing particle. Per the |
| 143 | +standing law they remain addressed views/operators/sidecars over the same |
| 144 | +resident ABI — never another population owner. Nothing here builds one; |
| 145 | +recurrence has not been measured. |
| 146 | + |
| 147 | +## 7b. ⊘ MEASURED — the three corrections that close this addendum |
| 148 | + |
| 149 | +`PROBE-COPULA-DISTRIBUTION-1` (5/5) ran the two distributions §4 named as |
| 150 | +open. All three findings correct THIS document. |
| 151 | + |
| 152 | +### Correction A — the shipped fold this addendum failed to audit |
| 153 | + |
| 154 | +**`nars::facet_fold` (ENTROPY-MILESTONES M26) already carries the copula, |
| 155 | +losslessly, in the resident M20 register — with zero classid involvement.** |
| 156 | +§8 below listed "sparse relation rows with copula content resident in the |
| 157 | +row" as candidate C, a hypothesis to measure. It is not a hypothesis. A |
| 158 | +strictly cheaper form is shipped, tested, and green: |
| 159 | + |
| 160 | +``` |
| 161 | + CStmt {s, cop, p} ⟷ SpoFacet (the 12-byte content-blind register) |
| 162 | + rail 0 subject s as (lo, hi) |
| 163 | + rail 1 predicate (copula TAG, Rel lo) ← the copula lives HERE |
| 164 | + rail 2 object p as (lo, hi) |
| 165 | + rail 3 ew_subject (Rel hi, spare) ← Rel's u16 completes here |
| 166 | +``` |
| 167 | + |
| 168 | +Re-verified over the measured corpus, not trusted from unit tests: **16/16 |
| 169 | +statements round-trip byte-exact** (D1), including `Rel(u16)` payloads |
| 170 | +spanning rails 1+3. Five copulas on one `(s,p)` yield five DISTINCT |
| 171 | +registers (D2) — the discriminating information is resident bytes, and |
| 172 | +nothing upstream is consulted. |
| 173 | + |
| 174 | +This is the **"consult before you guess" tax** the repo's own CLAUDE.md |
| 175 | +warns about, paid in full: *"Proposing a type that already exists is a |
| 176 | +30-turn rediscovery tax — check first."* The probe-local `RelRow` in |
| 177 | +§4 was exactly that. |
| 178 | + |
| 179 | +### Correction B — "KJV Rel-heavy" was REFUTED, not merely unmeasured |
| 180 | + |
| 181 | +§4 named the KJV corpus as the **Rel-heavy** regime that would contrast |
| 182 | +with the Inh-dominated closure fixture. Measured, through the REAL |
| 183 | +`stance::stream` producer on REAL KJV Genesis 2–3: |
| 184 | + |
| 185 | +| | Inh | Rel | Impl | Sim | |
| 186 | +|---|---|---|---|---| |
| 187 | +| closure fixture (§4) | 10 | 2 | 1 | 1 | |
| 188 | +| **real KJV narrative** | **13** | **2** | **1** | **0** | |
| 189 | + |
| 190 | +**Inh 6× Rel.** The prediction is refuted. Both corpora now measured lean |
| 191 | +the SAME way, so **a Rel-heavy regime is UNDEMONSTRATED, not merely |
| 192 | +unmeasured** — a materially different status, and the reason for naming |
| 193 | +predictions in advance. |
| 194 | + |
| 195 | +### Correction C — "tactics Impl" was a phantom |
| 196 | + |
| 197 | +`nars::tactics` emits **only `Inh` and `Sim`** (every `Copula::` site |
| 198 | +verified). There is no tactics Impl distribution. The real producers are |
| 199 | +`nars::stance` (both `Impl` and `Rel(verb)`) and `reason_whole_book` |
| 200 | +(`Rel(pid)`). |
| 201 | + |
| 202 | +### Cost, at the measured shape and extended |
| 203 | + |
| 204 | +| representation | at measured shape | at t=10k | |
| 205 | +|---|---|---| |
| 206 | +| **`facet_fold`** | **0 extra bytes** (relabels an existing register) | **0** | |
| 207 | +| §4's `RelRow` | 896 B (n=16) | grows with relations | |
| 208 | +| dense 4-group bitmap | 164 B (t=18) | **50 MB** regardless of content | |
| 209 | + |
| 210 | +§4's fixture-scale surprise (dense beating sparse) **inverts** at real term |
| 211 | +counts — and both lose to a fold that allocates nothing. |
| 212 | + |
| 213 | +### Still BLOCKED, and not fabricated |
| 214 | + |
| 215 | +The whole-KJV **scale** measurement cannot run: `data/coca/lexicon.tsv` |
| 216 | +(Release `coca-codebook-v2`) and `pg10.txt → kjv_spo.tsv` are both absent |
| 217 | +by design. A hand-written corpus would be a fabricated measurement, so none |
| 218 | +was produced. **Scale stays open; shape is now measured.** |
| 219 | + |
| 220 | +## 8. What Step 2 now asks about `cop` (replacing Item 1's question) |
| 221 | + |
| 222 | +Not *"where do we encode Copula?"* but: |
| 223 | + |
| 224 | +> **What is the cheapest lawful resident relation + selection geometry |
| 225 | +> from which Copula is merely an ergonomic reading?** |
| 226 | +
|
| 227 | +**The answer is E, and it is already shipped.** Re-graded after §7b: |
| 228 | + |
| 229 | +- **E. existing-tenant composition — `nars::facet_fold` → `SpoFacet`.** |
| 230 | + **RECOMMENDED.** The copula is a 2-bit tag on rail 1 (plus `Rel`'s u16 |
| 231 | + across rails 1+3) of a 12-byte content-blind register the awareness |
| 232 | + plane already holds. Lossless, round-trip-gated, **0 extra bytes**, zero |
| 233 | + classid involvement. Verified on the measured corpus (D1/D2), not merely |
| 234 | + on its own unit tests. |
| 235 | +- **C/D. sparse relation rows (± group masks)** — SUPERSEDED by E for the |
| 236 | + copula question. The `PROBE-COPULA-GROUP-MASK-1` results still stand as |
| 237 | + the general **many-to-many topology** finding (G-F1/F2/F4/F5/F6/F8 held), |
| 238 | + and the group-mask ergonomics remain available as a SELECTION layer over |
| 239 | + whatever carries the relation — but the copula itself needs no new row. |
| 240 | +- **A/B. masks alone** — REJECTED as sole carriers: classification cannot |
| 241 | + carry pairwise topology; HHTL must not fake many-to-many (G-F4). |
| 242 | +- **F. a new tenant** — NOT proposed, and now clearly unnecessary. |
| 243 | + |
| 244 | +**What the ruling can now decide, and what it cannot.** SHAPE is measured |
| 245 | +and points at E. SCALE is still open (whole-KJV blocked on uncommitted |
| 246 | +Release data). Since E allocates nothing and is already shipped, the scale |
| 247 | +question does not gate adopting it — it gates only any FUTURE proposal to |
| 248 | +replace it. If the ruling accepts E, `cop` leaves the residue list |
| 249 | +entirely: it has a home, and that home costs nothing. |
0 commit comments