Skip to content

Amend executed_conjunct_discriminates_nothing: confirm the delete arm actually deleted - #10269

Merged
gunbai-bot[bot] merged 1 commit into
mainfrom
session/tidy-koi-619-mutation
Sep 3, 2026
Merged

gunbai-bot[bot] merged 1 commit into
mainfrom
session/tidy-koi-619-mutation

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

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:

  1. the edit ran through python3 -c under double quotes, so the shell consumed the escape sequences and the replacement matched no text;
  2. the anchor matched twice — 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, 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

… 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
@gunbai-bot
gunbai-bot Bot merged commit 5e0438f into main Sep 3, 2026
7 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/tidy-koi-619-mutation branch September 3, 2026 19:44
@briansrls
briansrls restored the session/tidy-koi-619-mutation branch September 3, 2026 19:55
@gunbai-bot
gunbai-bot Bot deleted the session/tidy-koi-619-mutation branch September 3, 2026 23:51
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