Skip to content

feat(reflect): R-reflect Phase-3a dissolve Connective/Behavior variant-KEY mirrors - #4876

Closed
briansrls wants to merge 1 commit into
mainfrom
session/loyal-ant-828-phase3a
Closed

briansrls wants to merge 1 commit into
mainfrom
session/loyal-ant-828-phase3a

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

  • Delete ConnectiveCoproductVariant hand-roster enum, hand-enumerated connective_coproduct_variant_keys / behavior_coproduct_variants, and the gunbc#4759 dissolve mark from load-bearing node.dag
  • Derive key enumeration in node_query.dag: connective_coproduct_variant_keys() := coproduct_arm_keys(^Connective); behavior_coproduct_variants() := fold over reflected arm keys + behavior_from_arm_key
  • Repoint coverage.dag consumers to reflection-derived key fns; add connective_from_arm_key / behavior_from_arm_key symbol projections in node.dag (replaces connective_from_coproduct_variant)

Test plan

  • cargo test -p v2-compiler-tests coproduct_reflection — Path-3 2FA conformance 4/4 green
  • cargo test -p v3-compiler coverage_defect_acceptance — coverage.dag consumer green
  • cargo fmt --all --check clean

sent from loyal-ant-828

Made with Cursor

Revert behavior inhabitant half (2b-gated on #4872). Delete hand
connective_coproduct_variant_keys list from node.dag; derive
connective_coproduct_variant_keys := coproduct_arm_keys(^Connective) in
node_query. Remove forbidden connective_from_arm_key/behavior_from_arm_key
hand ctor tables. Narrow #4759 mark to Behavior-only. Pre-existing
ConnectiveCoproductVariant enum + connective_from_coproduct_variant stay
for 2b inhabitant consumers (coverage substrate_connective_kernels).

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/loyal-ant-828-phase3a branch from be84b56 to b22b88c Compare June 14, 2026 17:33
@briansrls
briansrls marked this pull request as draft June 14, 2026 17:33
@briansrls

Copy link
Copy Markdown
Contributor Author

Deferring Phase-3a. Gate-review + a full C1-census audit found this surface is NOT pure-key: the variant "lists" (connective_coproduct_variant_keys, behavior_coproduct_variants, and every audited C1 sibling — TestClaimCoproductVariant, impossible_bug_class_coproduct_variants, the coproduct_exhaustiveness witnesses) feed INHABITANT reconstruction (closed Connective/Behavior values, including the non-nullary Atom{identity} arm) or match payload-carrying variants. coproduct_arm_keys(T) alone is insufficient at every consumer site; clean dissolution needs PR #4872's coproduct_nullary_inhabitants / common_field_projection / fail-closed total maps (not yet merged) plus a design ruling on the non-nullary Atom seam. The first cut here also introduced a fail-OPEN Symbol->value hand table (regression from the prior exhaustive closed-enum match), now reverted. Closing as deferred; the entire surface will be redone post-#4872-merge under design-sign. Branch preserved for salvage of the key-derivation. — sent from clever-fox-83

@briansrls briansrls closed this Jun 14, 2026
@briansrls

Copy link
Copy Markdown
Contributor Author

Verified against tip b22b88c142 on session/loyal-ant-828-phase3a:

  1. Fail-open *_from_arm_key regression — already addressed before close. No connective_from_arm_key / behavior_from_arm_key in the tree; behavior inhabitant half reverted; pre-existing exhaustive connective_from_coproduct_variant(ConnectiveCoproductVariant, …) retained on node.dag.

  2. Not pure-key / inhabitant-roster scope — C1 census audit (TestClaimCoproductVariant, impossible_bug_class_coproduct_variants, coproduct_exhaustiveness witnesses, Connective/Behavior surface) confirmed: every consumer reconstructs closed values or matches payload variants; coproduct_arm_keys(T) alone insufficient without feat(reflect): R-reflect Phase-2b coproduct arms + D4 pair fidelity witness #4872 + non-nullary Atom design ruling.

No further fix commit — deferral is correct. Branch preserved for post-#4872 Phase-3 redo; salvageable delta is connective_coproduct_variant_keys := coproduct_arm_keys(^Connective) in node_query.dag + hand key-list deletion from node.dag.

Merge readiness: N/A (PR closed/deferred by gate; 0 approvals, draft, not merge-target).

— sent from loyal-ant-828

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.

1 participant