Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/board/STATUS_BOARD.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Plan: `.claude/plans/2026-10-08-resident-projection-fold-mask-v1.md`. Mask = adm

| D-id | scope | status | gate / falsifier |
|---|---|---|---|
| **D-RPF-0** | Pearl3 / Epi5 / mantissa predicate over `MaterializedEdges` via `MatchFacet16Strided`, threshold as ≤ n+1 patterns | Queued | equals CE64 accessors; wrong-bit care disagrees; unnamed fields silent; both windows stay inside the 32 B tenant |
| **D-RPF-0** | Pearl3 / Epi5 / mantissa predicate over `MaterializedEdges` via `MatchFacet16Strided`, threshold as ≤ n+1 patterns | In PR (test-pinned, `mask-risc/tests/resident_ce64_predicate.rs`) | equals CE64 accessors; wrong-bit care disagrees; unnamed fields silent; both windows stay inside the 32 B tenant |
| **D-RPF-1** | Law tables → per-recipe ternary pattern set (≤ 24 × 8), run under an admission plane (class, rail, generation, provenance) | Queued | equals `measure_declared`; dropping one code loses exactly its rows; removing the admission plane admits a v1 row |
| **D-RPF-2** | Census of eligibility and read-set classes on a real population | Queued | classes/rows reported; near 1 drops D-RPF-3; no population-sized seen-set |
| **D-RPF-3** | Exact read-set dedup per CE64 instruction, key incl. handle context | Queued (after D-RPF-2) | removing cohort from key changes a result; dedup-then-fold equals per-row for Count/Sum/Avg |
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 2026-10-08 — D-RPF-0: CE64 field predicate over resident `NodeRow` bytes

**Status:** MEASURED, TEST-PINNED
(`crates/lance-graph-mask-risc/tests/resident_ce64_predicate.rs`, 6 tests;
`cargo test -p lance-graph-mask-risc --test resident_ce64_predicate`).
Test-only: the library is unchanged; `causal-edge` and `lance-graph-contract`
are dev-dependencies of mask-risc.

## Claim and result

A Pearl3, Inference (raw 4-bit nibble) or Epi5 predicate on any of the four
`CausalEdge64` words in `ValueTenant::MaterializedEdges` runs in place through
`Pred::MatchFacet16Strided` over two 16-byte windows (edges 0,1 and 2,3), with
no extracted lane. Executor and oracle agree, and both equal the CE64 named
accessors, row by row, for every value of every field on every edge
(3 tiles + 37 rows). `raw5 >= t` is a union of at most 6 patterns and equals
the accessor for all 32 thresholds on all four edges.

The predicate is built from `isa::Field::span()`; the oracle reads the CE64
accessors, which never consult that table. Offsets come from
`ValueTenant::value_offset()`.

## Falsifiers

- can fire: a care shifted up by one bit disagrees with the accessor for some
value of every field;
- can stay silent: rewriting every byte of every row except the cared field
leaves the mask unchanged;
- anti-vacuity: each field has a value admitting a strict, non-empty minority
(< 1/3) of rows. It fired on the first run: the fixture generator (`>> 11`
LCG) left bits 53..63 zero in every word, so Epi5 was constant. Replaced by
SplitMix64.

Disable runs (anchor asserted, each red): window `k` instead of `k / 2` (4),
half always 0 (3), threshold without the equality pattern (1), silent-arm noise
keeping none of the base field (1).

## OPEN

None for D-RPF-0. D-RPF-1 adds the admission plane in front of these patterns.
3 changes: 2 additions & 1 deletion .claude/board/entries/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ index row, (3) no duplicate entry id. Checks 1 and 2 are deliberately
opposite directions; the stranding this convention prevents shows up in
exactly one of them, never both.

271 entries, 2026-08-06 .. 2026-10-08.
272 entries, 2026-08-06 .. 2026-10-08.

| date | entry id | finding | file |
|---|---|---|---|
Expand All @@ -36,6 +36,7 @@ exactly one of them, never both.
| 2026-10-08 | `moore-nars16-isa-visible-representation` | | [2026-10-08-moore-nars16-isa-visible-representation.md](2026-10-08-moore-nars16-isa-visible-representation.md) |
| 2026-10-08 | `D-MOORE-NARS-0` | | [2026-10-08-moore-nars-0-recipe-learning-gomoku.md](2026-10-08-moore-nars-0-recipe-learning-gomoku.md) |
| 2026-10-08 | `hhtl-nars-moore-value-tenants` | | [2026-10-08-hhtl-nars-moore-value-tenants.md](2026-10-08-hhtl-nars-moore-value-tenants.md) |
| 2026-10-08 | `D-RPF-0` | | [2026-10-08-d-rpf-0-resident-ce64-predicate.md](2026-10-08-d-rpf-0-resident-ce64-predicate.md) |
| 2026-10-08 | `coresearch-ce64-moore-masking-wiring` | | [2026-10-08-coresearch-ce64-moore-masking-wiring.md](2026-10-08-coresearch-ce64-moore-masking-wiring.md) |
| 2026-10-08 | `ce64-isa-register-contract` | | [2026-10-08-ce64-isa-register-contract.md](2026-10-08-ce64-isa-register-contract.md) |
| 2026-10-07 | `tinker-janus-fold-harvest` | TinkerPop bulk = K (GroupReduce), ONE_BULK = S, GValue pinning = bundle invalidation; JanusGraph slice = OrderedLaneWitness→Range (30–38×); no new V4 op | [2026-10-07-tinker-janus-fold-harvest.md](2026-10-07-tinker-janus-fold-harvest.md) |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ between them. Where a hop has no primitive, the phase stops and files the gap.

## Checklist

- [ ] **D-RPF-0** — Resident CE64 field predicate in place
- [x] **D-RPF-0** — Resident CE64 field predicate in place (`lance-graph-mask-risc/tests/resident_ce64_predicate.rs`; entry `2026-10-08-d-rpf-0-resident-ce64-predicate.md`)
- [ ] **D-RPF-1** — Law-table → pattern-set compiler (recipe eligibility as a mask)
- [ ] **D-RPF-2** — Class census: how many distinct eligibility and read-set classes a real population has
- [ ] **D-RPF-3** — Read-set dedup for CE64 instructions (hotspot dedup, exact)
Expand Down
10 changes: 9 additions & 1 deletion .github/workflows/rust-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -436,8 +436,16 @@ jobs:
run: cargo test --manifest-path crates/sigma-tier-router/Cargo.toml
- name: Run neural-debug tests (previously ungated) # 11 green
run: cargo test --manifest-path crates/neural-debug/Cargo.toml
# opt-level 3 for THIS package only, debug stays 0 (manifest). The
# crossword_real_words_probe example tests (D-PUZZLE-0, 2026-10-07) run a
# solver search that takes 810 s at opt-level 0 and pushed this job past
# its 30-minute limit on main (run 37766947128, cut off in `hydrate`).
# Measured locally at opt-level 3: 183 s, 4m08 including the compile.
# `--config` keeps every other crate on the shared opt-level-0 cache.
- name: Run shader-driver tests (previously ungated) # 107 + 2 green
run: cargo test --manifest-path crates/cognitive-shader-driver/Cargo.toml
run: >-
cargo test --manifest-path crates/cognitive-shader-driver/Cargo.toml
--config 'profile.dev.package.cognitive-shader-driver.opt-level=3'
# The default run above skips these targets: `w2_differential` and
# `mailbox_cutover` are `cfg(feature = "mailbox-thoughtspace")`, and the
# StreamDto circuit probe needs `with-engine` for `StreamDto`.
Expand Down
5 changes: 5 additions & 0 deletions crates/lance-graph-mask-risc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ description = "The one mask-RISC evaluator/fuser above ndarray::simd — a plan
ndarray = { path = "../../../ndarray", default-features = false, features = ["std"] }

[dev-dependencies]
# D-RPF-0 (`tests/resident_ce64_predicate.rs`): the CE64 accessors are the
# oracle and the contract supplies the tenant offsets. Test-only — the library
# still names neither.
causal-edge = { path = "../causal-edge" }
lance-graph-contract = { path = "../lance-graph-contract" }
Loading
Loading