From 594a32b4f10a2ae7c8f6236e48577f8b95b48fd4 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 21 Oct 2026 08:00:10 +0000 Subject: [PATCH] =?UTF-8?q?board:=20#1654=20closeout=20=E2=80=94=20D-RA-2?= =?UTF-8?q?=20repoint=20shipped,=20PR=5FARC=20entry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_013z2e1YXkm6o6HNrDn5BPWA --- .claude/board/LATEST_STATE.md | 6 +++++- .claude/board/PR_ARC_INVENTORY.md | 7 +++++++ .claude/board/STATUS_BOARD.md | 2 +- .../entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.claude/board/LATEST_STATE.md b/.claude/board/LATEST_STATE.md index e8609125e..82f73c451 100644 --- a/.claude/board/LATEST_STATE.md +++ b/.claude/board/LATEST_STATE.md @@ -1,4 +1,8 @@ -## 2026-10-21 — D-RA-2: relalg `symbolic` repointed onto `contract::set_rules` (in PR) +## 2026-10-21 — main after #1654 (merged `d754128`) + +- **On main:** #1652, #1653, #1654 (D-RA-2 repoint of relalg `symbolic` onto `contract::set_rules`; `Rule::{EmptyMeasure, CountAll}`; #1651 closeout). Contract inventory delta: two `set_rules::Rule` variants (see the D-RA-2 section below). + +## 2026-10-21 — D-RA-2: relalg `symbolic` repointed onto `contract::set_rules` (#1654, merged `d754128`) - **Contract:** `set_rules::Rule::{EmptyMeasure, CountAll}` added (catalogue 8 rules). **relalg:** `normalize::symbolic` delegates to `set_rules::rewrite`; crepe's symbolic answers follow through `lance_graph_relalg::run`. Entry `entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md`. diff --git a/.claude/board/PR_ARC_INVENTORY.md b/.claude/board/PR_ARC_INVENTORY.md index abe09425d..d3ef73a8e 100644 --- a/.claude/board/PR_ARC_INVENTORY.md +++ b/.claude/board/PR_ARC_INVENTORY.md @@ -1,3 +1,10 @@ +## 2026-10-21 — lance-graph PR #1654 (merged `d754128`, branch `claude/eager-albattani-iufugq`, head `ac147d9`) — D-RA-2: relalg's symbolic answers from `contract::set_rules`; #1651 closeout + +- **Added:** `set_rules::Rule::{EmptyMeasure, CountAll}` (catalogue 8 rules); test `experiment_e_no_universe_refuses_the_range_rules`; entry `2026-10-21-d-ra-2-relalg-symbolic-repoint.md`. Also the #1651 board closeout (D-CMR-6 Shipped, PR_ARC #1651). +- **Locked:** `lance_graph_relalg::normalize::symbolic` decides through `set_rules::rewrite` under `Semantics::exact(n_rows)` and answers only a constant; `Min`/`Max` answer `None` only when their `Count` folds to 0. crepe's symbolic answers follow through `relalg::run`; crepe's join-body rewrites stay. `Count(∅)`/`Sum(∅) → 0` refuses `_sym` sums; `Count(All) → N` refuses no universe, bags, IEEE. +- **Deferred / open:** `Min`/`Max` stay outside `set_rules::Measure` (empty answer is `None`). +- **Confidence:** measured. set_rules 25, relalg 26 unchanged, crepe-plan-probe 46 unchanged (re-run on the rebased head incl. #1653), contract lib 1,547; disable runs show relalg's answers depend on the contract rules; each new guard red when removed; Codex's #1654 finding (range no-universe negative control) fixed with a test. + ## 2026-10-21 — lance-graph PR #1651 (merged `6bf4f86`, branch `claude/eager-albattani-iufugq`, head `43218eb`) — D-CMR-6: guarded rule catalogue and fixpoint driver in the contract; #1650 closeout - **Added:** `lance_graph_contract::set_rules::{Measure, RowRange, Semantics, Arith, Truth, SumFamily, Population, Rule, Refusal, RuleSpec, CATALOGUE, Trace, rewrite, rewrite_with, all_rules}` (zero deps); entry `2026-10-21-d-cmr-6-rule-catalogue.md`. Also the #1650 board closeout (D-CMR-2 Shipped, PR_ARC #1650). diff --git a/.claude/board/STATUS_BOARD.md b/.claude/board/STATUS_BOARD.md index b974a3c6d..71c00a051 100644 --- a/.claude/board/STATUS_BOARD.md +++ b/.claude/board/STATUS_BOARD.md @@ -243,7 +243,7 @@ Plan: `.claude/plans/relalg-v1.md`. Crate: `crates/lance-graph-relalg` (own work | **D-HOLO-H14c** | Thought-first positional reads `Thought(t)[Table(a)[i] : Table(b)[i]]`: point projection, presence/Hamming populations through mask-risc, explicit terminal rows; memory and fragmentation of positional tables; Lance 13 masked I/O; coordinate identity across rewrites (sub-ids -1 … -6) | Measured 2026-10-15 (v4, entry 2026-10-15-d-holo-h14c-thought-first): acceptance A–E met (tables consulted == k for every U; k = 2 read at U = 31 0.90–1.16x U = 2); C vs B on query-shaped reads mixed; uniform 1 % positional tables ≈ 93x payload resident (flagged); Lance prediction holds (uniform 1 % mask 1.00x bytes, clustered 0.24x); stale maps omit silently, refused by the version check; returned to the operator | tables consulted == requested lanes for every touched count; at k = 2, U = 31 read <= 1.25x U = 2; populations load no value; no row materialized outside the terminal; no wrong coordinate across rewrites; Lance prediction (1 % uniform mask does not halve bytes_read, 1 % clustered does) | | **D-HOLO-H14d** | C's own operation in four stages, C only: (1) relalg symbolic reduction of the thought's set expression, (2) materialize `R = P_a ∧ P_b ∧ A` (or `∨`) over presence planes, (3) Lance 13 read pruned by `R`, (4) COUNT/EXISTS from `R` or the operation on `T_a[i], T_b[i]` for survivors; sub-ids -1 … -5 | Measured 2026-10-16 (v4, entry 2026-10-16-d-holo-h14d-logic-mask-read): stage 1 decides 675/2,000 programs with 0 runs, 396 answered only after the rewrite, 2 widened (ISS-RELALG-ABSORPTION-AFTER-DE-MORGAN), passes 1,065 vs 5,898; R costs 2–10 ns per 64-address word; Lance scans exactly |R| everywhere, bytes 1.00x at uniform 1 % full tile, 0.19x clustered 1 %, 0.01–0.12x inside a 1,024/8,192 aperture; payload ~6 ns per lane load, reads == |R| × k, not flat at small |R| (fixed word scan; prediction 4 falsified); fused Σ ~1.3 ns per value; point query 8–45 ns hot; returned to the operator | `R` == per-address reference; rewritten == as written on 2,000 programs; payload reads == |R| × k; Lance rows == |R| with reference values; five disable runs red | | **D-RA-1** | `Rel` + `normalize` + `symbolic` + R2IL lowering | Shipped #1546 `c21bd165` (11 tests, 11 disable runs red; four comparisons on one lane 8 → 2 ops; 70/2,000 small descriptions refused as written, all run rewritten) | == row oracle over 400 generated descriptions × 5 measures | -| **D-RA-2** | Rules into the contract set IR (D-CMR-1/-6); relalg keeps only lowering or is deleted | DECISION 2026-10-20: option A, the contract owns the single-table set-algebra rewrites; relalg keeps relational planning, joins and lowering (`entries/2026-10-20-six-decisions.md` §2). No general relational AST for JC or Quack (`d-relalg-unified-v1.md` § Decisions). D-CMR-1 shipped (#1644): relalg `normalize` delegates to `contract::set_algebra::normalize`. After D-CMR-6: relalg `symbolic` (and crepe through it) delegates to `contract::set_rules` (in PR; `entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md`); crepe's join-body rewrites stay | relalg tests pass unchanged against the contract IR | +| **D-RA-2** | Rules into the contract set IR (D-CMR-1/-6); relalg keeps only lowering or is deleted | DECISION 2026-10-20: option A, the contract owns the single-table set-algebra rewrites; relalg keeps relational planning, joins and lowering (`entries/2026-10-20-six-decisions.md` §2). No general relational AST for JC or Quack (`d-relalg-unified-v1.md` § Decisions). D-CMR-1 shipped (#1644): relalg `normalize` delegates to `contract::set_algebra::normalize`. After D-CMR-6: relalg `symbolic` (and crepe through it) delegates to `contract::set_rules` (shipped #1654, `d754128`; `entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md`); crepe's join-body rewrites stay | relalg tests pass unchanged against the contract IR | | **D-RA-3** | Datalog rules as algebra values; names are labels resolved through the label codebook, never strings in a rule — council v3 (2026-10-16) places the Datalog VALUES in `metta::datalog`; D-RA-2 still gates relalg | Queued (after D-RA-2) | codebook-built rules == hand-written `Rel`; unknown label refused at resolution | | **D-RA-4** | **⛔ VIOLATION — GATHER. DO NOT BUILD. CORRECT: D-HOLO-H14c / H14d.** Bound recursion via external frontier driver over D-CMR-5 preimage | Queued (after D-CMR-5) | == row-oracle closure; frontier past bound refused | diff --git a/.claude/board/entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md b/.claude/board/entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md index 187eb70b7..40b5e1df5 100644 --- a/.claude/board/entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md +++ b/.claude/board/entries/2026-10-21-d-ra-2-relalg-symbolic-repoint.md @@ -1,6 +1,6 @@ # 2026-10-21 — D-RA-2: relalg's symbolic answers repointed onto `contract::set_rules` (crepe through relalg) -**Status:** TEST-PINNED, in PR (branch `claude/eager-albattani-iufugq`). **Basis:** six-decisions §2 ("D-CMR-6 publishes the catalogue → repoint crepe"); D-RA-2 option A; claim EXO-50 `session_013z2e1YXkm6o6HNrDn5BPWA/019`. +**Status:** TEST-PINNED, merged in #1654 (`d754128`). **Basis:** six-decisions §2 ("D-CMR-6 publishes the catalogue → repoint crepe"); D-RA-2 option A; claim EXO-50 `session_013z2e1YXkm6o6HNrDn5BPWA/019`. - **What was duplicated:** `lance_graph_relalg::normalize::symbolic` decided `Count(∅) = 0`, `Sum(∅) = 0`, `Min/Max(∅) = None` and `Count(All) = n` by matching `Rel::Empty` / `Rel::All` locally — single-table measure identities outside the contract. - **Contract (`set_rules`, two rules added):** `EmptyMeasure` (`Count(∅) → 0`, `Sum(∅) → 0`; refuses `_sym` sums, whose empty sum is a sentinel) and `CountAll` (`Count(All) → N`; refuses no universe, bag, IEEE). The catalogue has 8 rules.