Repository navigation
D-GRAMMAR-WHEN-1: binding a grammatical WHEN through DT64 (lab) - #1948
Conversation
Source audit and lab falsifier for two read-only DT64 methods, CandidateRecipient and CandidateExperiencer, that share obl:arg + Case=Dat and differ in the head verb's frame. Extends crates/grammar-constraints-probe (src/when.rs, tests/when.rs, examples/when_cost.rs). - The #1947 head hop (Pred::EqU32Via, foreign[fk[i]]) is gather-shaped: ADMISSION B does not admit a position derived from another column as a read address, and EXO-140 is still unclassified. A correction note is added to the #1947 report. - DT64 states the dependent's own conditions but not the head frame (only an opaque Sym); admit checks witness equality only; validate does not check guard lanes; no read-only DO exists; R2IL still refuses WHEN. - Co-addressed form ("the join is the layout"): the head's frame as a lane at the dependent's coordinate makes the WHEN row-local in today's SetExpr with distinct witnesses and no EqU32Via in the query. The cross-row read moves into a counted producer (EXO-46 / D-RMAP-1). - Lab composer: admit, check description against witness, lower description and a shared global WHERE into one program. Both forms match an independent oracle and gold; 10 negative controls as predicted; 9 source disables red; 0 B per hot run. No production change, no ClassId, no F###. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLBmi7EtDd15CGwGb8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLBmi7EtDd15CGwGb8
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
|
Generated by Claude Code |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7f63815ca4
ℹ️ 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".
…nder Codex review on #1948: run() checked only that the frame belongs to the table and that the row count matches, so a table re-sealed under a permuted layout of the same size was answered with bits naming other gids. The population now keeps its binding frame and both Rules::run and Composed::run refuse any other (Refusal::PopulationFrame, checked with Frame::same_issue after the map read). Falsifiers c7b (p0) and n06b (when) were written first and failed before the fix; both pass after. p0 13/13, when 17/17. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMLBmi7EtDd15CGwGb8
This PR is a source audit plus a lab falsifier. It changes no production code, mints no ClassId, adds no
F###word and admits nothing..claude/probes/2026-11-03-d-grammar-when-1/REPORT.mdcrates/grammar-constraints-probewithsrc/when.rs,tests/when.rsandexamples/when_cost.rs.0df42b9, the merge of D-GRAMMAR-CONSTRAINTS-0: German dative roles as typed relational constraints (lab) #1947.Question
Can DT64 bind and invoke the meaning of a grammatical WHEN lawfully? The test case is two read-only methods,
CandidateRecipientandCandidateExperiencer. Both requireobl:arg ∧ Case=Dat; they differ only in the head verb's frame.Findings
Pred::EqU32Via, readsforeign[fk[i]]: a position taken from another lane's value. ADMISSION B (entries/2026-10-20-six-decisions.md:26-34) says such a position "is not admissible as a read address". The 2026-10-16 banner calls that read shape a violation. No ruling admitsEqU32Via(EXO-140 is still open). The D-GRAMMAR-CONSTRAINTS-0: German dative roles as typed relational constraints (lab) #1947 report now carries a dated correction note.SetExpr::Sym, andadmitchecks witness equality only.validatenever checks WHEN lanes against the class basis; a test pins this.GuardNotExecutable. Its integration suite passes 52/52, including that refusal test.SetExpr) would duplicate Quack and push physical navigation into the guard.Filter::EqU32Via), but not in RelAlg, whoseRelhas no hop. DT64 can only point at it through an opaqueSym.SetExpr, so the two guards keep distinct witnesses with noSym.EqU32Via: 10 mask ops, about 0.41–0.47 µs for both methods over 40 tokens, against 0.56–0.57 µs via the hop.tests/when.rs, and D-GRAMMAR-CONSTRAINTS-0: German dative roles as typed relational constraints (lab) #1947'stests/p0.rsstill passes 12/12.Coreand holds one code per edge; DeepNSM-v2'sDativeFunctionis a set of 8 and adds Judicantis.Owner decisions
EqU32Via. The report proposes, non-bindingly, gather-class, not admitted on the query path.Sym;Test plan
cargo test --manifest-path crates/grammar-constraints-probe/Cargo.tomlcargo test --manifest-path crates/lance-graph-r2il/Cargo.toml --test integrationclippy with
-D warningsand fmt are clean.Refs: #1917, #1942, #1943, #1944, #1947; EXO-46, EXO-50, EXO-73, EXO-108, EXO-140.
Generated by Claude Code