Repository navigation
Amend executed_conjunct_discriminates_nothing: confirm the delete arm actually deleted - #10269
Merged
Merged
Conversation
… actually deleted That row's remedy already has two halves -- run the DELETE arm and confirm EXACTLY ONE witness reddens, and choose the isolating subject with care because a red for the wrong reason is how the class survives its own test. This adds the second half's mirror, which the row does not carry: a GREEN for the wrong reason. The remedy as written is satisfiable by a no-op. A probe that FAILED TO MUTATE and a probe whose mutation the check TOLERATED print the identical passing value, so "run the delete arm and read the verdict" cannot distinguish a wall that holds from a wall that was never tested. The probe must assert THAT IT MUTATED, as a claim separate from what the check then says, then restore and re-run to confirm the green returns -- a one-sided probe does not establish that the verdict tracks the mutation at all. The specimen is dated and both failure paths are real rather than imagined. Proving the discriminating red for every_restored_stall_is_still_rostered (#10257) took three attempts and the first two mutated nothing: one ran the edit through `python3 -c` under double quotes, where the shell consumed the escapes so the replacement matched no text; the other chose an anchor that matched twice, because the check's own pin list had just been added to the same module as the roster and repeated the same member spellings. That second one generalises -- any check that enumerates roster members creates a second population with the same spellings, and every later sweep over that module has to distinguish them. Both no-ops printed the passing value and would have been read as the wall holding. Only the third attempt produced the red, with the green returning after restore. Recorded with the catch's provenance because it is the argument for the amendment: the no-ops were noticed only because the edit script happened to carry an occurrence-count assertion written for an unrelated reason. Nothing in the remedy required it. Found by warm-seal-35, who ruled this an amendment rather than the new row I first proposed. Projection regenerated via generated_artifact_gate main_wet; only the authority and its projection moved. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VdJu3Xkr9PX3gdBqen9Cdn
This was referenced Sep 3, 2026
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.
executed_conjunct_discriminates_nothing's remedy already has two halves: run the DELETE arm and confirm exactly one witness reddens, and choose the isolating subject with care, because a red for the wrong reason is how this class survives its own test.This adds that second half's mirror, which the row does not carry: a green for the wrong reason.
The gap
The remedy as written is satisfiable by a no-op. A probe that failed to mutate and a probe whose mutation the check tolerated print the identical passing value — so "run the delete arm and read the verdict" cannot distinguish a wall that holds from a wall that was never tested.
The probe must assert that it mutated — count the substitutions, or diff the tree — as a claim separate from what the check then says. Then restore and re-run to confirm the green returns, because a one-sided probe doesn't establish that the verdict tracks the mutation at all.
Specimen, dated, both failure paths real
Proving the discriminating RED for
every_restored_stall_is_still_rostered(#10257) took three attempts, and the first two mutated nothing:python3 -cunder double quotes, so the shell consumed the escape sequences and the replacement matched no text;That second one generalises, and is in the amendment: any check that enumerates roster members creates a second population with the same spellings, so every later sweep over that module has to distinguish them.
Both no-ops printed the passing value and would have been read as the wall holding. Only the third attempt, anchored on roster-only context, produced the red — with the green returning after restore.
The catch's provenance is recorded because it is the argument for the amendment: the no-ops were noticed only because the edit script happened to carry an occurrence-count assertion written for an unrelated reason. Nothing in the remedy required it.
Found by warm-seal-35, who ruled this an amendment rather than the new row I first proposed — the class was already rostered, and a new row would have been a second authority for it.
Projection regenerated via
main_wet; only the authority and its projection moved.🤖 Generated with Claude Code
https://claude.ai/code/session_01VdJu3Xkr9PX3gdBqen9Cdn