D254 - A wrong proposal is free on disk and expensive in the loop
decided · 2026-08-25 · measured over thirty-six rounds
round() grows a local clone of the grammar with
the words it is about to try, sweeps, and discards it. Only words a
confirmed name was built from reach the bank. The comment beside it
called this "what makes a wrong proposal genuinely free".
It is free on disk. It is not free in the loop. Nothing remembered a
failure, so the model re-proposed the same words every round and the
sweep re-ran them: Group was accepted and swept
against thirty-five million candidates twelve separate times,
and Node nearly as often. The measured yield of a
thirty-six round run - three names - sat entirely in the first round of
each position, and the remaining thirty-three rounds largely re-tried
what had already failed.
Vocabulary::tried_before holds every word swept this
run. It is deliberately not the bank: the bank is
evidence and the hash is the only thing that puts a word in it, so a
failure must be remembered for the run and forgotten by the file. Two
tests pin both halves, and the first was confirmed to fail against the
old code.
Refusal::AlreadyTried is separate from
AlreadyKnown because they state different facts - one says
the vocabulary has the word, the other says it does not and it was tried
anyway.