Repository navigation
mistaber-kripke-probe: Kripke holdings as a least fixpoint over DR64 compose - #1873
Conversation
…DR64 compose D-MIST-NATIVE-0. Mistaber's kripke_rules.lp is stratified (every negation is over input relations), so holds is the least fixpoint H = H0 | ((H o children) & !Block), one dr-math-binding-probe::relcomp::compose plus an AND-NOT per step. Rule and origin lineage are the same fixpoint gated by H. Holdings are read as WideFieldMask selections over one lens; holds/2 is a Set projection (a Bag projection double-counts the diamond). Reproduces all 10 Clingo goldens exported by AdaWorldAPI/mistaber-rs exactly. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
Rendering already re-checks holds at the parent, so the gate inside the lineage fixpoint could not fail any golden comparison. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
…robe Plan d-mistaber-native-v1.md: the crosswalk the lance-graph-mistaber facade would export (ALIAS/INLINE/REFUSE), the holdings lens with its Set/Bag split, the probe's evidence and the open questions (production home for compose, lens classid, upstream licence). Own CI workflow for the standalone crate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars.
|
rustfmt output only; one assert_eq! wrapped. Not this PR's change; ported so the style.yml format job passes here. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
|
The I've pushed the fix here as 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: dbfb187f7b
ℹ️ 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".
A lens row is one (mode, source rule), or one (mode) with empty rule fields when the holding has no rule. Bag projection counted modes, so p,e (one mode, inherited(d), two source rules) gave one row instead of two, and the three-field selection ignored Bag entirely. Each mode now carries a per-rule cell mask; bag_counts_lens_rows_not_modes pins both selections. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
…nic message F6 (from mistaber-rs@62e2382) pins that upstream's inherited rule has no world(W_child) condition: a holding reaches an undeclared child world, and the probe matches it with no world mask on inheritance. F5 only covered an undeclared parent. The lfp unreachable! named a 4096-step bound; the loop runs at most 65 steps (63 hops between 64 worlds, plus one step confirming no change). Board text counts updated; the licensing open question is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
…1873); plan §9 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
…; D-MIST-NATIVE-1a shipped Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ
Adds a standalone probe that computes Mistaber's Kripke holdings natively and checks them against Clingo goldens. Plan:
.claude/plans/d-mistaber-native-v1.md.Approach
Mistaber's
kripke_rules.lpis stratified:holdsrecurses through inheritance, and every negation is over input relations. The holdings are therefore one least fixpoint:Each step is one
dr-math-binding-probe::relcomp::composeplus an AND-NOT; no new algebra is introduced. Rule and origin lineage use the same fixpoint, gated byH.Holdings are exposed as one lens (
proposition, world, mode, immediate_rule, source_rule); each predicate is aWideFieldMaskselection over it.holds/2is the set projection of that lens.Changes
crates/mistaber-kripke-probe: standalone workspace, depending only ondr-math-binding-probeandlance-graph-contract..github/workflows/mistaber-kripke-probe.yml: fmt, clippy and test for the crate.crates/lance-graph-contract/src/morton8x8.rs: rustfmt only, matching main.Tests
AdaWorldAPI/mistaber-rs@62e2382) match exactly, compared as sorted lists.¬Block, either world mask, the direct-onlymoderaterule, per-rule bag counting or the lineage gate each turns tests red.🤖 Generated with Claude Code
https://claude.ai/code/session_01XAqKMMCqUkM2QW7zqLC2NJ