Skip to content

Commit 8f50cd9

Browse files
authored
Merge pull request #1594 from AdaWorldAPI/ccr-9f3b8075-74u47l-cgw1
D-CGW-1: CE64 bits 43..45 are the orientation
2 parents 124eb6c + 0ee072c commit 8f50cd9

55 files changed

Lines changed: 632 additions & 440 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.claude/board/LATEST_STATE.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 2026-10-16 — D-CGW-1: CE64 bits 43..45 are the orientation (in PR)
2+
3+
`causal_edge::Orientation` (Core + the seven Haspelmath dative functions) is the one meaning of 43..45; `direction()` → `orientation()`, `pack`/`pack_v2` take it. The S/P/O pathological triad and `detect_simpsons_paradox` are removed (no production writer). Contract `MooreDirection` replaces `DirectionReading`; `lift_ce64` refuses an oriented edge. #1593 merged (`124eb6cf`). Entry `2026-10-16-d-cgw-1-orientation-contract.md`.
4+
15
## 2026-10-16 — synergy map since #1579 (entry `2026-10-16-synergy-map-since-1579.md`, in PR)
26

37
- Revises every point of the #1579 map against merges #1580–#1591. D2 (preimage op) closed as a violation; L6 closed (#1544 closed); X17 and D8 partly closed by #1582. Decisions recorded: 43..45 amended to orientation in the contract, activation becomes a row field, OpenPSI modulators only into qualia.

‎.claude/board/PR_ARC_INVENTORY.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
## 2026-10-16 — lance-graph PR #1593 (merged `124eb6cf`, branch `ccr-9f3b8075-74u47l-synergy-1591`, head `526a0bc5`) — synergy map since #1579; config note reword; D-ARG-1..4 queued
2+
3+
- **Added:** entry `2026-10-16-synergy-map-since-1579.md` (§1–§9: revision of every base point, CE64 vs identity/edge tenants and the 24×i4 loci, triangle join as presence-plane intersection); `.cargo/config.toml` note on the avx and v2 arms; STATUS rows D-CGW-13/14 and D-ARG-1..4.
4+
- **Locked:** none (board and a config comment).
5+
- **Deferred / open:** D-CGW-1 (in PR after this), D-CGW-9, D-CGW-14, D-ARG-1..4.
6+
- **Confidence:** board-index checks green; Codex P2 (contract migration presented as done) fixed in `b6f3f40a`.
7+
18
## 2026-10-16 — lance-graph PR #1591 (merged `e53f2325`, branch `ccr-9f3b8075-74u47l-ce64-grammar-wiring`, head `cd1b1b3c`, 24 commits incl. a merge of main) — deepnsm-v2 wire: every CE64 field of a parsed triple from its source, Gadamer gate first; plan D-CGW-0..14
29

310
- **Added:** `deepnsm_v2::wire` (verses → rows: F/C from the arm, Pearl from TEKAMOLO, 43..45 = Haspelmath dative function, W = the statement's Markov arc in `WitnessTable<64>`, epistemic state from the support balance, loci Antecedent / TEKAMOLO / Quorum / Contradiction); the Gadamer gate (`contract::revision`) admits before anything is counted; `DativeFunction::ALL`; `causal-edge` `activation` / `novelty_wisdom` accessors; probe `lance-graph-quack/examples/wired_reasoning_probe.rs` (741 rows, 0 rule violations); plan `ce64-grammar-wiring-v1.md`; entry `2026-10-16-grammar-coordinates-annotation-wiring.md` §10–11.

‎.claude/board/STATUS_BOARD.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Plan: `.claude/plans/ce64-grammar-wiring-v1.md`. Entry: `entries/2026-10-16-gram
55
| D-id | scope | status | gate / falsifier |
66
|---|---|---|---|
77
| **D-CGW-0** | `deepnsm-v2::wire`: CE64 0..63 from named sources; Gadamer gate before counting; W = Markov arc in `WitnessTable<64>`; activation = update-caused frequency change; 43..45 = Haspelmath function; Antecedent / TEKAMOLO / Quorum / Contradiction loci; qualia register; `wired_reasoning_probe` | In PR | 229 tests; probe 741 rows, 5 rules, 0 violations; disable runs red per entry §7–§11 |
8-
| **D-CGW-1** | one global meaning per CE64 field, held in the `causal-edge` contract (no per-tenant readings; superseded the same day); amend 43..45 to orientation with all triad readers migrated | Queued — approved 2026-10-16 as its own test-first PR (readers census: synergy map since #1579 §4 S8; also `syllogize`/`execute`, ledger N1) | one code table shared by accessor, writer and readers; field isolation 43..49. **Gate:** wire edges stay in the probe until this lands |
8+
| **D-CGW-1** | one global meaning per CE64 field, held in the `causal-edge` contract (no per-tenant readings; superseded the same day); amend 43..45 to orientation with all triad readers migrated | In PR (branch `ccr-9f3b8075-74u47l-cgw1`): `causal_edge::Orientation` on 43..45, `pack`/`pack_v2` take it, the S/P/O triad removed (no production writer), Moore `lift_ce64` refuses an oriented edge; entry `2026-10-16-d-cgw-1-orientation-contract.md`. 46..49 (D-CGW-9) and 50..52 still open | one code table shared by accessor, writer and readers; field isolation 43..49. **Gate:** wire edges stay in the probe until this lands |
99
| **D-CGW-2** | frequency-ranked default reading (COCA, DeReKo) + antecedent-tested promotion of the alternative (relative pronoun) with agreement | Queued | `der Mann, der …` promoted; `der Mann gab der Frau …` silent; English `that` promoted without a COCA Rel tag |
1010
| **D-CGW-3** | case morphology decides argument order in the parser (`Den Hund biss der Mann`) | Queued | OVS flips, SVO unchanged, syncretic case unresolved; UD German GSD dev measured |
1111
| **D-CGW-4** | counterfactual lanes: `CausalCandidate` → `Causes` only with `IncreaseEligible` ∧ `Necessary` | Queued | necessary / dispensable / not-run triple |
@@ -94,7 +94,7 @@ Council 2026-10-16: `metta-datalog-assimilation-v1-council-v3.md` is the ratifie
9494
| **D-ASM-8** | `learn`-shaped measures (marginals, MI/PMI, cosine, Jaccard) as a reading of pair counts in `lance-graph-arm-discovery`; counts from D-ASM-3, never a loop; no `lance-graph-learn` crate (entry `2026-10-16-asm-accepted-proposals.md`) | Queued (not authorized; gated on D-ASM-3) | measures == an oracle run of upstream `learn` on one corpus; `(opencog matrix)` definitions sourced first |
9595
| **D-ASM-9** | `lance-graph-das` attention-broker probe: `w = edge.count / node.count`, rent, spread over the D-ASM-2 hop | Queued (not authorized; gated on D-ASM-2; crate not created) | attention values == DAS broker on one fixture; crate created only when the probe runs |
9696
| **D-ASM-10** | MORK as fourth oracle (Hyperon · PeTTa · datafrog · MORK), built as a separate binary outside the workspace, results only | Queued (not authorized) | MORK answers recorded beside the other three, divergences recorded, never averaged |
97-
| **D-ASM-11** | **⛔ VIOLATION — GATHER. DO NOT BUILD. CORRECT: D-HOLO-H14c / H14d.** Leapfrog probe on a cyclic 3-way join, split into Q-E (exact existence mask where the semijoin chain over-approximates) and Q-A (binding enumeration emitting keyed counts, D-ASM-3's missing carrier), written from the paper (Veldhuizen, *Leapfrog Triejoin*, arXiv 1210.0481v5, ICDT '14); the zipper shape is the probe's question, not a premise — arm A: leapfrog triejoin over the existing sealed ordered lanes, with aperture depth as `open`/`up` and a galloping `seek` from the cursor (the paper's amortized O(1 + log(N/m)); today's `bound_aperture` is a fresh `partition_point`); cleanest, already integrated; arm B: leapfrog triejoin over a prefix-shared trie zipper (PathMap-like), studied as prior art to learn from (worst-case optimal on cyclic joins, which a semijoin chain is not); the arm that wins on cost per element and integration is adopted, and what B teaches (variable order, prefix sharing, seek pattern) is carried into A either way | Queued (not authorized; gated on D-ASM-2). Pre-work in #1587: F4 fixture, bag oracle, `seek_from` (P-1), GYO (P-3), P-7 insufficiency shown (entry `2026-10-16-wcoj-probes-1-3.md`); closing atoms split into D-ASM-11A/B | Q-E: mask == datafrog's SET of head rows; Q-A: == datafrog as a BAG; per-element cost on the v4 arm only; margin and lessons pre-registered before the run; findings from B recorded even when A wins |
97+
| **D-ASM-11** | **⛔ VIOLATION — GATHER. DO NOT BUILD. CORRECT: D-HOLO-H14c / H14d.** Leapfrog probe on a cyclic 3-way join, split into Q-E (exact existence mask where the semijoin chain over-approximates) and Q-A (binding enumeration emitting keyed counts, D-ASM-3's missing carrier), written from the paper (Veldhuizen, *Leapfrog Triejoin*, arXiv 1210.0481v5, ICDT '14); the zipper shape is the probe's question, not a premise — arm A: leapfrog triejoin over the existing sealed ordered lanes, with aperture depth as `open`/`up` and a galloping `seek` from the cursor (the paper's amortized O(1 + log(N/m)); today's `bound_aperture` is a fresh `partition_point`); cleanest, already integrated; arm B: leapfrog triejoin over a prefix-shared trie zipper (PathMap-like), studied as prior art to learn from (worst-case optimal on cyclic joins, which a semijoin chain is not); the arm that wins on cost per element and integration is adopted, and what B teaches (variable order, prefix sharing, seek pattern) is carried into A either way | Queued (not authorized; gated on D-ASM-2). 2026-10-16: arm B is a lanewise span fold over the WordNet DN lanes (each `is_a` level an ordered lane, seek = span), gated on range-as-span (lane-fold capstone point 4); an element-wise zip and a cyclic n-hop stay refused residuals. Pre-work in #1587: F4 fixture, bag oracle, `seek_from` (P-1), GYO (P-3), P-7 insufficiency shown (entry `2026-10-16-wcoj-probes-1-3.md`); closing atoms split into D-ASM-11A/B | Q-E: mask == datafrog's SET of head rows; Q-A: == datafrog as a BAG; per-element cost on the v4 arm only; margin and lessons pre-registered before the run; findings from B recorded even when A wins |
9898
| **D-ASM-11A** | **⛔ VIOLATION — GATHER. DO NOT BUILD. CORRECT: D-HOLO-H14c / H14d.** Closing atom for functional relations: `Pred::EqU32ViaLane` + ndarray `eq_u32_via_lane_to_mask` (spec `.claude/plans/wcoj-closing-atoms-v1.md` §2) | Spec ratified 2026-10-16; authorized 2026-10-16 (ungated from D-ASM-2); ndarray #364 closed unmerged 2026-10-16 | G1 exact mask == datafrog; G2 op count fixed and < the disjunction; G5-A disables |
9999
| **D-ASM-11B** | **⛔ VIOLATION — GATHER. DO NOT BUILD. CORRECT: D-HOLO-H14c / H14d.** Closing atom for n:m relations: `MaskOp::RunsMeet` (gated, beside `Gather`) + ndarray `runs_meet_under_to_mask` + lgj-abi status arm (spec §3) | Spec ratified 2026-10-16; authorized 2026-10-16, after D-ASM-11A | G0 fixtures; G3 edge oracle + projection; G4 elements-touched slope 1.5 ± 0.1; G5-B disables |
100100
| **D-ASM-12** | `lance-graph-cog`: deterministic content → NodeGuid atom address, shared by the D-ASM-1b binder and the `atomspace-lance` StorageNode adapter (which calls it); replaces the Rocks `n@`/`l@`/`a@`/`h@` indexes | Queued (not authorized; crate not created) | same content → same address from both callers; no string or hash index reachable from a row; adapter carries no layout of its own |
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
# 2026-10-16 — D-CGW-1: CE64 bits 43..45 are the orientation
2+
3+
**Status:** SHIPPED IN PR (branch ccr-9f3b8075-74u47l-cgw1).
4+
5+
## What changed
6+
7+
- New `causal_edge::orientation::Orientation` (`crates/causal-edge/src/orientation.rs`):
8+
a 3-bit code. `Core` = 0, then Direction, Recipient, Experiencer, Purpose,
9+
Beneficiary, PredicativePossessor, ExternalPossessor (Haspelmath 2003 dative
10+
map). `from_code` reads the low three bits, so every value names exactly one
11+
orientation.
12+
- `CausalEdge64::direction()/set_direction()` are now
13+
`orientation()/set_orientation()`. `pack` and `pack_v2` take an
14+
`Orientation`, so the compiler lists every writer. `layout::DIR_SHIFT` is
15+
renamed `ORIENT_SHIFT`. `CausalEdgeV3::direction()` became `orientation()`.
16+
- Removed, not moved: `s/p/o_pathological`, `concern_level`,
17+
`CausalNetwork::detect_simpsons_paradox`. Reason: no production code wrote
18+
the triad. The only production writer of 43..45 was `deepnsm-v2::wire`, which
19+
already wrote Haspelmath codes. The planner's `ConfounderCheck`
20+
(`lance-graph-planner/src/pearl.rs`) computes its two directions from
21+
population masks. `CausalMask::simpsons_paradox_risk(so, po)` stays, documented
22+
as taking caller-computed directions.
23+
- `deepnsm-v2::wire` writes the contract's `Orientation`. Its own u8 table became
24+
`orientation_of(DativeFunction) -> Option<Orientation>` and
25+
`orientation_function(Orientation)`.
26+
- Contract `moore_tenant`: `DirectionReading`, `SignTriple`,
27+
`require_sign_triple` and `DirectionRefusal` (a per-tenant reading binding) are
28+
replaced by `MooreDirection { slot, polarity }`. `MooreTenantMut::lift_ce64`
29+
refuses an edge whose orientation is not `Core` with the new
30+
`MooreRefusal::Oriented { slot, code }`. A refusal writes nothing.
31+
- About 85 call sites migrated across causal-edge, deepnsm-v2, lance-graph,
32+
lance-graph-planner, cognitive-shader-driver, lance-graph-osint, p64-bridge and
33+
thinking-engine. Zero literals became `Orientation::Core`. Fixture bit patterns
34+
kept their bits through `Orientation::from_code`.
35+
- Probes that read 43..45 per class (`witness_angle_probe`) or as the triad
36+
(`moore_nars16_probe`) are marked superseded. The moore_nars16 Simpson tests
37+
were removed with the detector they tested. `moore_nars_gomoku_probe` no longer
38+
writes its Moore direction into 43..45.
39+
- `docs/architecture/ce64-semantic-upper-half.md`: 43..45 are settled. The
40+
"declared reading per tenant" paragraph is replaced by one meaning per field.
41+
42+
## Tests
43+
44+
- `crates/causal-edge/tests/orientation_contract.rs` (5 tests, written first and
45+
committed red):
46+
- the code table is one-to-one over 3 bits;
47+
- zero is `Core`;
48+
- accessor and setter agree;
49+
- both packers write the same table;
50+
- field isolation of 43..45 against 40..42 and 46..49.
51+
- Contract `moore_tenant`: `h_direction_is_slot_and_polarity` and
52+
`h2_an_oriented_edge_is_refused`. Disable run: removing the refusal check turns
53+
`h2` red (11 passed, 1 failed). Restored afterwards.
54+
- causal-edge passes on both the v2 default and `--no-default-features` (v1).
55+
56+
## Edge facet census (Haiku card, spot-checked)
57+
58+
- Production writers of the 16-byte edge facet: two.
59+
- `lance-graph-contract/src/aiwar.rs:117-119` (out-of-family slots, bytes
60+
12..15).
61+
- `symbiont/src/domino.rs:95-97` (bytes 0 and 12).
62+
- Both use the old 12+4 slot reading.
63+
- All other non-default constructions are test code. No code assigns a row's
64+
`.edges` field directly.
65+
66+
## Decided 2026-10-16 (conversation)
67+
68+
- WordNet: `is_a` is the identity facet's DN path (16-nibble, already wired by
69+
`deepnsm-v2::promote::{tiers_of, key_at}`). `part_of` and other relations go to
70+
the edge facet, read as 16 slots through the ClassView. The 128-bit facet
71+
format already exists (D-HPR-6a), so there is no layout change. The missing
72+
piece is the caller: AriGraph, which is D-ARG-3.
73+
- A leapfrog trie zipper over DN keys is a lanewise span fold (each DN level is
74+
an ordered lane; a seek is a span). It is input to D-ASM-11 arm B and depends
75+
on range-as-span (lane-fold capstone point 4). Per the capstone, a real
76+
element-wise zip and a cyclic n-hop are refused residuals, so the triangle in §9 of `2026-10-16-synergy-map-since-1579.md`
77+
qualifies only as span intersections plus one terminal AND.
78+
79+
## OPEN
80+
81+
- 46..49 are still read as activation by `wire` and as Energy4 by Moore tenants.
82+
D-CGW-9 moves activation to a row field.
83+
- 50..52 carries plasticity (`learn`) and the novelty → wisdom rung (`wire`). It
84+
needs a ruling.
85+
- The two production edge-facet writers still use the 12+4 slot reading.
86+
- WordNet DN gates are not measured:
87+
- G1: chain depth ≤ 12/16;
88+
- G2: fan-out per level ≤ code width;
89+
- G3: multi-parent synsets.

‎.claude/board/entries/README.md‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately
2525
opposite directions; the stranding this convention prevents shows up in
2626
exactly one of them, never both.
2727

28-
362 entries, 2026-08-06 .. 2026-10-16.
28+
363 entries, 2026-08-06 .. 2026-10-16.
2929

3030
| date | entry id | finding | file |
3131
|---|---|---|---|
@@ -40,6 +40,7 @@ exactly one of them, never both.
4040
| 2026-10-16 | `ledger-revision-1582-1591` | | [2026-10-16-ledger-revision-1582-1591.md](2026-10-16-ledger-revision-1582-1591.md) |
4141
| 2026-10-16 | `grammar-coordinates-annotation-wiring` | | [2026-10-16-grammar-coordinates-annotation-wiring.md](2026-10-16-grammar-coordinates-annotation-wiring.md) |
4242
| 2026-10-16 | `D-HOLO-H14d` | | [2026-10-16-d-holo-h14d-logic-mask-read.md](2026-10-16-d-holo-h14d-logic-mask-read.md) |
43+
| 2026-10-16 | `D-CGW-1` | | [2026-10-16-d-cgw-1-orientation-contract.md](2026-10-16-d-cgw-1-orientation-contract.md) |
4344
| 2026-10-16 | `coresearch-wcoj-leapfrog` | | [2026-10-16-coresearch-wcoj-leapfrog.md](2026-10-16-coresearch-wcoj-leapfrog.md) |
4445
| 2026-10-16 | `board-catchup-open-items` | | [2026-10-16-board-catchup-open-items.md](2026-10-16-board-catchup-open-items.md) |
4546
| 2026-10-16 | `D-ASM` | | [2026-10-16-asm-accepted-proposals.md](2026-10-16-asm-accepted-proposals.md) |

0 commit comments

Comments
 (0)