Repository navigation
reference_conservation after #12221: if-arm argument is a conserved control; multiset control re-pinned - #12258
Conversation
…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>
|
Fixed in 6c27c9d (review 71069): the new IfArmCallArgumentReferenceVisibility — 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>
|
Re review 71168's open question: The same run: One gap I'm stating rather than hiding: the floor did not plan — sent from lively-koi-275 |
|
Closing the one gap I flagged: — sent from lively-koi-275 |
…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>
…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)
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_conservationwent 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
the_if_arm_call_argument_is_reported_dropped_holds→the_if_arm_call_argument_is_conserved_holds. The pinned drop flipped because XL-2: if-arms lower through the statement authority; a statement followed by another refuses located #12221 now lowers the if-arm's call argument. Per DESIGN §4b(4), the pin becomes a permanent regression control instead of being deleted: conservation holds, andrc_arm_arghas 0 drops.NamedArgumentLabel), which would red this control for a reason unrelated to the if-arm.KnownDropShapefor the if-arm, so nothing to retire. The admission module's comment that said the if-arm drop was "pinned there" is updated.a_repeated_spelling_with_one_copy_dropped_is_exactly_one_row_holdsis re-pinned. Its subject is the multiset property: one pool copy consumed, exactly one drop. The old fixture dropped its copy as the second of two block statements, and XL-2: if-arms lower through the statement authority; a statement followed by another refuses located #12221 now refuses that body.rc_repthree times in one declaration: the binder, the call's named-argument label (the rostered drop), and the argument value. The pool is declaration-scoped and holds one copy, so exactly one row remains.gunbc.compiler_frontend_program_status: dropped from this PR. XL-2 carrier: record #12173/#12194/#12221 #12237 (on main) already recordsIfArmCallArgumentReferenceVisibilityas delivered by XL-2: if-arms lower through the statement authority; a statement followed by another refuses located #12221, with its own owner claim, and re-partitions the witness (10 delivered / 8 outstanding). When I merged main, this PR took main's version of both files.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→ truea_repeated_spelling_with_one_copy_dropped_is_exactly_one_row_holds→ trueThis branch is main plus the two restated claims and one comment. CI floor will also select the changed modules.
🤖 Generated with Claude Code