Repository navigation
ModelCore substrate-evolution (3/4): spec_facts: List<PrimitiveFactAxisBinding> → Map<Symbol, Node> uniqueness constraint — discharge E3-deferred follow-up from #3500 (codex BLOCKING #4: List admits duplicate axis bindings; std/collection already declares Map) - #3549
Merged
Merged
Conversation
briansrls
marked this pull request as ready for review
May 22, 2026 01:38
briansrls
commented
May 22, 2026
briansrls
left a comment
Contributor
Author
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
31232e7a· Trigger:schedule - Thinking:
249s wall
Non-blocking — Strengths
src/v4/std/model_core.dagThe substrate move from List to Map<Symbol, Node> aligns with P2 by making duplicate axis bindings structurally unrepresentable.
✅ Reviewed as mixed .dag substrate/extdeps model plus Rust smoke-test update; no blocking concerns.
2 tasks done
briansrls
added a commit
that referenced
this pull request
May 22, 2026
SPI-3: infer_descent_witness_for_node remaps cardinality Violates to infer_descent_not_derived while preserving upstream diagnostic.at (P2 facts-flow-forward). Receipts: infer_ground_add_mvp compiles/Holds paths. Extdeps: align java/kotlin/lean/llvm_ir/machine_code/typescript/wasm spec_facts with ModelCore Map<Symbol, Node> after #3549 (replacing stale PrimitiveFactAxisBinding lists). Refresh strict-deprose Owns lines. Co-authored-by: Cursor <cursoragent@cursor.com>
2 tasks done
briansrls
commented
May 22, 2026
briansrls
left a comment
Contributor
Author
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
ca65d1d8· Trigger:schedule - Thinking:
196s wall
✅ Reviewed the mixed .dag substrate/extdeps update plus Rust smoke-test adjustment; no blocking concerns in the current diff.
3 of 4 tasks
briansrls
added a commit
that referenced
this pull request
May 22, 2026
SPI-3: infer_descent_witness_for_node remaps cardinality Violates to infer_descent_not_derived while preserving upstream diagnostic.at (P2 facts-flow-forward). Receipts: infer_ground_add_mvp compiles/Holds paths. Extdeps: align java/kotlin/lean/llvm_ir/machine_code/typescript/wasm spec_facts with ModelCore Map<Symbol, Node> after #3549 (replacing stale PrimitiveFactAxisBinding lists). Refresh strict-deprose Owns lines. Co-authored-by: Cursor <cursoragent@cursor.com>
1 of 2 tasks
briansrls
added a commit
that referenced
this pull request
May 22, 2026
#3572) * feat(v4/infer): SPI-3 descent bridge + extdeps Map alignment SPI-3: infer_descent_witness_for_node remaps cardinality Violates to infer_descent_not_derived while preserving upstream diagnostic.at (P2 facts-flow-forward). Receipts: infer_ground_add_mvp compiles/Holds paths. Extdeps: align java/kotlin/lean/llvm_ir/machine_code/typescript/wasm spec_facts with ModelCore Map<Symbol, Node> after #3549 (replacing stale PrimitiveFactAxisBinding lists). Refresh strict-deprose Owns lines. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v4/test): forward infer descent witness diagnostic in receipt helper infer_descent_witness_contract_node reuses Violates diagnostic from infer_descent_witness_for_node (preserves upstream.at) instead of rebuilding at the subject node. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ModelCore primitive fact bundles now carry
spec_factsasMap<Symbol, Node>instead of a list of axis/fact bindings. The Rust, Python, and C++ primitive bundle constructors now populate that keyed carrier withmap_insert, making duplicate axis bindings structurally unrepresentable while preserving honestly absent axes.Dashboard work item: node://adhoc-2089c5ab-15f
Test plan
ctrl-build -- cargo build -p v2-compiler --releasepassed.ctrl-build -- bash -lc "cargo build -p v2-compiler --release && bash scripts/v4-bootstrap-viability.sh"passed; resolved 165 sources and emittedcompiled: 1 files emitted, 0 diagnostics.rg -n "PrimitiveFactAxisBinding|primitive_axis_binding|spec_facts: \\[|spec_facts: List" src/v4returned no matches.Worker attestation