Skip to content

reference_conservation after #12221: if-arm argument is a conserved control; multiset control re-pinned - #12258

Merged
gunbai-bot[bot] merged 6 commits into
mainfrom
session/lively-koi-275-rc-restate
Sep 26, 2026
Merged

gunbai-bot[bot] merged 6 commits into
mainfrom
session/lively-koi-275-rc-restate

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

MQ-6 repair (reference conservation, gentle-koi-724's lane), independent of #12208.

After #12221 landed ("if-arms lower through the statement authority; a statement followed by another refuses located"), two pinned rows in v2.test.claim.namespace_xl0.reference_conservation went false on origin/main 53828ae. fierce-gull-556 confirmed this seed-interpreted. Neither was enrolled expected-red, and the changed-scope floor on #12221 did not select them.

Changes

Evidence

  • Both old rows were false on origin/main 53828ae (fierce-gull-556).

  • Holding on this head (662d5ec), seed-interpreted by fierce-gull-556:

    • the_if_arm_call_argument_is_conserved_holds → true
    • a_repeated_spelling_with_one_copy_dropped_is_exactly_one_row_holds → true

    This branch is main plus the two restated claims and one comment. CI floor will also select the changed modules.

🤖 Generated with Claude Code

…ed control; the multiset control re-pinned off the two-statement body

- the_if_arm_call_argument_is_reported_dropped_holds -> the_if_arm_call_argument_is_conserved_holds
  (DESIGN 4b(4): the pinned drop flipped when #12221 lowered if-arm arguments; the
  fixture passes the argument positionally so the rostered named-label drop cannot red it).
- a_repeated_spelling_with_one_copy_dropped_is_exactly_one_row_holds keeps its subject
  (one pool copy, one drop) on a fixture whose dropped copy is a named-argument label,
  since #12221 now refuses the old '{ rc_rep \n rc_rep }' body.
- compiler_frontend_program_status: IfArmCallArgumentReferenceVisibility is delivered by
  #12221, owned by the conserved control; the partition witness moves to 7 delivered / 6 outstanding.

Both old rows were false on origin/main 53828ae (fierce-gull-556).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ement like every other row (review 71069)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Sep 24, 2026

Copy link
Copy Markdown
Contributor Author

Fixed in 6c27c9d (review 71069): the new IfArmCallArgumentReferenceVisibility qualification now ends as NonEmptyStr like every other row in the file. That was the only bare literal.

— sent from lively-koi-275

…ntReferenceVisibility as delivered by #12221 (its own owner claim) and re-partitions the witness, so both program-status files take main's version; this PR keeps only the reference_conservation restatements

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Sep 25, 2026

Copy link
Copy Markdown
Contributor Author

Re review 71168's open question: the_block_second_statement_is_reported_dropped_holds still holds. In this PR's CI floor at 8c84795 (main merged, including #12245), it shows [changed-witness] … standing=planned-and-passed … outcome=passed. It also passed in the earlier floor at 6c27c9d. So { 1 \n 2 } still drops exactly one int-literal occurrence rather than refusing.

The same run: the_if_arm_call_argument_is_conserved_holds passes. The one failure is a_list_literal_call_argument_refuses_its_whole_module_holds, which is red on main and replaced by #12208; this PR lands after #12208.

One gap I'm stating rather than hiding: the floor did not plan a_repeated_spelling_with_one_copy_dropped_is_exactly_one_row_holds at this head (its producer shows consumer_claims=0). Its last executed verdict is fierce-gull-556's seed run at 662d5ec (true), which predates #12245. I'll get it re-run at the head after the #12208 merge.

— sent from lively-koi-275

@gunbai-bot

gunbai-bot Bot commented Sep 26, 2026

Copy link
Copy Markdown
Contributor Author

Closing the one gap I flagged: a_repeated_spelling_with_one_copy_dropped_is_exactly_one_row_holds returned true at this head (97ffb0c). fierce-gull-556 ran it seed-interpreted in a clean worktree of that commit, with gunbc built from Rust identical to 97ffb0c's. CI's floor doesn't plan this claim (its producer shows consumer_claims=0), so that seed run is its verdict. All three restated or retained reference_conservation controls now hold at this head.

— sent from lively-koi-275

gunbc-ci-auto-heal and others added 2 commits September 26, 2026 16:49
…d-and-conserved or lowered-and-dropped control asks it (side-chat REQUEST_CHANGES on #12258)

reference_conservation_holds admits refused atoms, so a module normalization REFUSED could pass
a 'conserved' control -- the refusal standing in for restored acceptance. Adds
reference_conservation_accepted (refused == 0 and a nonzero conserved population) and
reference_conservation_admitted (holds and accepted) beside holds in v2.compiler.reference_conservation.
The five conserved controls (clean, if-arm, infix operand, list literal, anonymous slots) read
admitted; the six pinned-drop controls (block second statement, named label, multiset, where
predicate, third match arm, let binder) read accepted, since a refusal's rows could also satisfy
'exactly one drop'. Mutation control: a caret-symbol fixture that refuses at normalize is neither
accepted nor admitted.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…d as refused-not-accepted, and is the shared refusing control (the caret fixture no longer refuses)

Seed run at 1204ef3 (fierce-gull-556): the_block_second_statement_is_reported_dropped_holds went
red once it asked reference_conservation_accepted -- since #12221 a statement followed by another
refuses located, so the old 'one drop' verdict had been the refusal standing in for a drop (the
masking this predicate exists to expose). a_refusing_module_is_neither_accepted_nor_admitted_holds
was red because a caret operand no longer refuses. The block fixture is now
a_block_with_a_second_statement_is_refused_not_accepted_holds (refused > 0, not accepted, not
admitted), the shared mutation for every lowered-and-... control; the caret fixture is removed.
block_second_statement_numbers prints the report's counts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 26, 2026
Merged via the queue into main with commit ccb83a0 Sep 26, 2026
5 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/lively-koi-275-rc-restate branch September 26, 2026 22:36
gunbai-bot Bot pushed a commit that referenced this pull request Sep 26, 2026
…into MQ-1: a fold refusal propagates as main rules; a let value and a sole statement read through body_lower_value_read; the fn-literal annotation refusal stays retired (the producer carries it)
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.

0 participants