None of the declared key schedules fits every training singleton in any of the eight substantive sections. No candidate reaches the withheld-token check, and there is no new plaintext.
The result is conditional: we treat the audited separators as plaintext word boundaries and require every one-rune word to decrypt to A or I. Abbreviations, other languages, structural markers, nulls or a different boundary interpretation could violate that premise.
Declared search
We used the corrected 83-token inventory from Sessions 42–43, in the standard 29-rune order. Each section has its own freely selected key. In both arithmetic directions, decryption is:
P = (sign * C - key(position)) mod 29, with sign equal to +1 or -1.
| Key schedule | Free parameters per section and direction | Settings |
|---|---|---|
| Constant shift | b | 29 |
| Linear rune counter | a × rune index + b | 841 |
| Linear word counter | a × word index + b | 841 |
| Repeating two-shift key | one shift per rune-index parity | 841 |
| Repeating three-shift key | one shift per rune-index residue modulo 3 | 24,389 |
All coefficients and shifts range from 0 through 28. Zero slopes are included, so the families overlap. The two directions are also equivalent for the binary A/I membership constraint after an appropriate key transformation; they are not independent evidence. They can yield different longer-word readings.
Rune and word counters start at zero at the section's beginning and continue across pages. Punctuation and Arabic numerals do not advance the rune counter. The word counter counts all lexical rune-words, joining apostrophes immediately flanked by runes. No line reset, skipped F rule, prime sequence or arbitrary longer-period key was added to this pass.
For each section, the first ceil(2n/3) singleton locations in reading order form the training set; the rest are withheld. A candidate must satisfy every training location. All fitting keys would be retained, including all 29 choices for a repeating-key phase absent from training. We do not choose the best partial fit or tune parameters on the withheld locations.
Results
| Section | Singletons | Training | Withheld | Keys fitting all training locations, across the declared search |
|---|---|---|---|---|
| 0 | 5 | 4 | 1 | 0 |
| 1 | 8 | 6 | 2 | 0 |
| 2 | 11 | 8 | 3 | 0 |
| 4 | 18 | 12 | 6 | 0 |
| 5 | 5 | 4 | 1 | 0 |
| 6 | 12 | 8 | 4 | 0 |
| 7 | 9 | 6 | 3 | 0 |
| 8 | 15 | 10 | 5 | 0 |
| Total | 83 | 58 | 25 | 0 |
Because the training sets already eliminate every candidate, this is a training-stage rejection, not a successful out-of-sample experiment. There is no key or candidate plaintext to validate on the 25 withheld tokens.
A fixed sensitivity check removes the red heading M at LP2 page 6, rune offset 75, and the red initial A at page 54, offset 0, from their respective singleton constraint sets. Counters retain those runes and words in the text; only their A/I constraints are removed. We recalculate the chronological split within the affected sections. Both still have zero training fits.
Controls and chance comparison
The historical warning-page key P = 28 - C reproduces its complete known rune plaintext. Its one singleton allows two constant shifts under A/I membership alone, so that singleton does not independently identify the historical key.
We also encrypt the five decoded LP1 groups under each declared family in both directions, producing ten constructed controls. Together those groups have 14 singleton words, all A or I. For each control, the planted key survives the constraints and recovers every plaintext rune. The search's first full-fit witness also recovers the entire plaintext in all ten cases. For the period-three controls, two keys satisfy the singleton constraints, illustrating that a perfect singleton fit need not identify a unique key.
For context, we shuffled the observed singleton rune values among their positions independently within each section, preserving the inventories, counters and split sizes. Each of 999 seeded trials repeated the complete family search. All trials also yielded zero sections with a key fitting every singleton. The upper-tail comparison for the observed count of zero is therefore 1.0. This is a descriptive permutation comparison, not a model of encrypted English or a probability that Cicada used a particular cipher.
Some failures follow directly from diversity: a repeating key with period q can produce at most 2q distinct ciphertext symbols from plaintext A and I under these rules. Position constraints can eliminate additional possibilities. The real text's failure is not an unusual statistical fingerprint under this comparison.
What this changes
These exact, short schedules can be set aside under the stated A/I and boundary assumptions. Separate keys by section and either arithmetic direction do not rescue them. We have not excluded arbitrary changing keys, nonlinear schedules, feedback ciphers, different rune orderings, longer periods or non-English plaintext.
The useful result is a reproducible exclusion with working controls. Before expanding the key family, a next pass should explicitly revisit which singleton tokens must be ordinary plaintext words and require any richer model to explain longer text as well. Fitting these sparse locations alone would be too easy with enough free parameters.
Evidence and reproduction
- Complete results, positions, candidate counts, controls and 999 permutation outcomes
- Reproduction script
- Corrected lexical parser
- Source-image audit
Run python singleton_schedule_audit.py with NumPy installed and the notebook's companion source files in the same directory. The result records the transcription and script SHA-256 hashes. Page and rune offsets are zero-based. These tests do not change the source transcription.