Skip to content

board: co-research map — why the relalg / D-RU-6 probes measure milliseconds - #1657

Merged
AdaWorldAPI merged 16 commits into
mainfrom
ccr-0455e606-wmtsor
Oct 21, 2026
Merged

AdaWorldAPI merged 16 commits into
mainfrom
ccr-0455e606-wmtsor

Conversation

@AdaWorldAPI

@AdaWorldAPI AdaWorldAPI commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

This PR adds one board entry, entries/2026-10-21-coresearch-ms-vs-ns-folding.md, plus the regenerated index. It changes no code: the count fold pushed here earlier was reverted in c49db8d, so the tree matches 4071ec1.

What the map found

  • Folding is missing at the terminal, not in the core loop.
    • The D-RU-6 probes decode their results into BTreeSet tuples.
    • The crepe-plan-probe native terminal builds every binding even when the query only needs a count.
  • relalg's U1/U2 cost is the row scan itself. At about 0.34–1.5 ns per row over 1M rows, there is no fold left to recover there.
  • Join-key order contract. Only merge, seek and range joins need a total order: numeric order over the little-endian image, checked when the plan is bound. Frozen-codebook decoding is admitted on an immutable mapping, with no order witness.
  • Verdicts. Each idea is marked ADOPT-NOW, PROBE, PARK or SKIP, and each probe states in advance the result that kills it.

Why the count fold was reverted

The operator rule is that no millisecond result is acceptable anywhere: a single operation must take nanoseconds, a batch at most microseconds.

case (50,000 centers) measured
Count(Bag) 620 µs
Count(Bag), filtered 1.2 ms
Count(Set) 1.6 ms
Count(Set), filtered 1.3 ms

Three of the four cases took milliseconds. Other problems:

  • It kept the enumerating terminal, measured at 243–310 ms.
  • It used scalar loops instead of the ndarray polyfill.
  • It sorted values at each slot for Count(Set).

Nothing is adopted. D-RU-6 stays in the lab.

🤖 Generated with Claude Code

https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg

Attributes the milliseconds per path. Folding is missing at the terminal:
tuple decoding (O(n) bit tests, BTreeSet, a full NoWalk complement) and
the native count terminal enumerating. relalg U1/U2 are intrinsic row
scans. Exploration map: X1-X3 demand-typed plane terminal, X4 set-bit
decode and X9 allocation hoist ADOPT-NOW (lab); X6/X5/X8/X10/X11/X17
PROBE; X7/X14 SKIP (they change the answer). The D-RU-6 tuple oracle
stays, untimed and encoded into reference planes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
@coderabbitai

coderabbitai Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d533f735-d0e9-4171-b3d3-7ed135282eb9
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@AdaWorldAPI
AdaWorldAPI marked this pull request as ready for review October 21, 2026 08:49
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-21T08:50:57.967708Z 325457c Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 325457c216

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .claude/board/entries/2026-10-21-coresearch-ms-vs-ns-folding.md Outdated
…1657)

ADMISSION B demands an attested sorted key for same-table key-range seeks
only; frozen-codebook decoding is admitted on an immutable mapping within
the attested version (six-decisions §1, d-relalg-unified-v1.md:234).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
…enumerating

The native terminal answered every count by building each binding into a
BTreeMap. fold_kind decides from the plan alone (fold law 1) which counts
fold; count_over_mask answers them from the joint mask:
- Bag: sum over slots of the product of per-side filtered degrees;
- Set (one rule whose head holds the center): product of distinct filtered
  values of the head-referenced sides, exact because JoinDomain is injective
  (proof in the doc comment, narrowing fold law 7);
- filtered Exists: first slot with every factor >= 1, no product.
A zero factor is checked before the product; an unrepresentable count is
refused (NativeRefusal::CountOverflow) instead of falling back. Used by
pipeline::execute and cse::execute_shared; Report/SharedReport gain the
terminal that answered. execute_with / execute_shared_with(fold=false)
force enumeration for tests. Corrects the SidePlan::emit doc comment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
@AdaWorldAPI AdaWorldAPI changed the title board: co-research map — why the relalg / D-RU-6 probes measure milliseconds Co-research map (ms vs ns) + crepe-plan-probe count fold without enumeration Oct 21, 2026
Three of its four measured cases were milliseconds (filtered Count(Bag)
1.2 ms, Count(Set) 1.6 ms, filtered Count(Set) 1.3 ms on 50,000 centers),
it kept the enumerating terminal (243-310 ms) for Bindings and multi-rule
Set, and it used scalar loops and a per-slot sort instead of the ndarray
polyfill. Operator rule: no millisecond result anywhere; nanoseconds per
operation, microseconds at most per batch. The commits stay recoverable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
@AdaWorldAPI AdaWorldAPI changed the title Co-research map (ms vs ns) + crepe-plan-probe count fold without enumeration board: co-research map — why the relalg / D-RU-6 probes measure milliseconds Oct 21, 2026
…d, X6 reverted

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Nanoseconds per operation, at most microseconds per batch. An ms result is a
failed gate. Adds the format-template mental model (a value is read through a
template, never split into owned objects) and what a session must do before
reporting a timing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
…s, never copied values

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
… classified

Policy finding (F9) plus classified sites. No code changed; mask-risc untouched.
Mandatory refactor scope: crepe-plan-probe only. Follow-ups EXO-103..118.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
… time); no half is kept

Corrects the council entry's R5 ('emitting half', 'survives as a fold') and the
CLAUDE.md P0 bullet.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
… kept masks

Every terminal now folds over each rule's kept mask; no row is built in the
library, the tests or the examples.

- native: tuples_over_mask, NativeAnswer and bindings are gone. Exists, bag
  count and set answers are folds (any_derivation, bag_count, add_distinct
  into value-space masks). Set answers over more than one free column are
  refused (SetRefusal::MultiColumn, GAP-A2), never deduplicated by a sort.
- Bag bindings stay as kept slots over the prepared tables. A row is a head
  template read over the lanes in place ("{0}{1}" -f $laneA[$i],$laneB[$i]):
  for_each_derivation walks side positions, never values. matching(pattern)
  counts the rows reading as a pattern; a pinned center inverts its global id
  to the local slot (slot_of) and reads one slot.
- Answers::{total, matching, for_each} are the one comparison surface. Tests
  and examples compare answers by these folds; the row expanders that had
  been added on the test/oracle side are removed too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
…) on both paths

No test pinned the join variable through a post filter with propagation off,
so disabling narrow_center left every test green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
The whole substrate is zero copy. The only "exception" is the inversion
(global to local), which materializes the pointer table $i and nothing else.
A tuple is the template "{0}{1}" -f $laneA[$i],$laneB[$i]; a (Guid, Guid)
value pair is the violation. Strikes the coordinates/lens/membrane legs of
the tuple council entry and records Side::prepare's value copy as open.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
# Conflicts:
#	.claude/board/entries/README.md
@AdaWorldAPI
AdaWorldAPI merged commit de6770f into main Oct 21, 2026
12 checks passed
AdaWorldAPI pushed a commit that referenced this pull request Oct 21, 2026
main (#1657) removed native::bindings, the tuple builder. CoEval::bindings
built the same shape (a clone per combination, sort, merge into
Vec<(Vec<u64>, u64)>), so it is replaced by CoEval::matching(pattern), a
fold over the joint that inverts a pinned center to its slot. The parity
test compares bag totals and, per derivation the star path reads, the
pinned multiplicity against native::matching; the disjunctive test
compares totals and per-center / per-(x, c) counts against a counting
nested-loop oracle. The entries index is regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants