Switching among a few homophonic decoding tables does not rescue the shared-table model under the stated English singleton premise. Across 94,192 specified selector settings, none with 1 through 19 tables passes the A/I mass screen against the most permissive matched solved-group reference. Allowing standalone O yields the first passing setting at 10 tables. Passing this necessary screen does not recover a decoding table, key or plaintext.
Independent section tables escape much earlier, at three tables for A/I or two for A/I/O. That scope remains open. The result is about four numerical context summaries and their affine selectors, not every possible context-dependent cipher.
What differs from earlier work
Session 68 allowed many ciphertext symbols to decode to the same plaintext letter but required a fixed table within each key group. It also demonstrated why a table chosen separately for every word evades that bound.
This session permits table selection by a compact function of preceding ciphertext runes. Unlike Session 46, the selected row need not be a permutation. Unlike the fixed linear and nonlinear arithmetic in Sessions 39 and 47, every row may contain an arbitrary many-to-one mapping. We retain a strict limit on how the state is computed, rather than attempting to fit an unrestricted table for each long context.
The rare neighboring repeats motivate homophonic choice, but they are not imposed as a guaranteed output rule here. Changing tables can also create new repeated ciphertext symbols. This audit does not establish that these models explain the observed repeat deficit.
Declared candidate bank
Let C be a ciphertext rune's index in the standard 29-rune order. Four summaries z are checked:
| Summary | Definition | Preceding runes required |
|---|---|---|
| Previous | Immediately preceding C | 1 |
| Sum two | Sum of the preceding two C values, modulo 29 | 2 |
| Difference two | Preceding C minus second-preceding C, modulo 29 | 2 |
| Sum three | Sum of the preceding three C values, modulo 29 | 3 |
The selected table is:
state = ((a*z + b) mod 29) mod k
plaintext rune = D[state, current ciphertext rune]
All a = 1 through 28, b = 0 through 28, and k = 1 through 29 are tested. That is 812 affine selectors per k, 23,548 settings per summary and 94,192 per singleton sensitivity. Equivalent settings are retained, so these counts describe parameter settings, not distinct mechanisms. At k = 29, affine relabeling only renames the rows and does not change the capacity bound.
D is fixed and may be many-to-one. The encoder may select among a letter's homophones using state. For the primary scope, one D bank and selector apply across all sections. Sensitivities permit independent section D banks with either one common selector or independently chosen selectors.
The summaries and modulo grouping are analyst-chosen test families. No Cicada message has supplied this rule or identified these numerical rune indices as the intended key alphabet. Nonlinear selectors, arbitrary rune orders before the summary, plaintext-conditioned state, skipped updates and word/page resets are outside the bank.
Data, references and exact necessary bound
LP2 pages 0 through 55 supply the same 12,956-rune source and audited 83 singleton tokens as Session 68. All nine nonempty sections are included in the primary analysis. Words and pages do not reset the state; the first m runes of every section are omitted because their complete preceding context is unavailable.
The scored positions are 12,947 for memory one, 12,938 for memory two, and 12,929 for memory three. All 83 audited singletons retain a complete context under these policies. The nine-rune section has no singletons but contributes its eligible positions to the primary totals.
A state/current-cipher cell seen as a retained one-rune word must decode into the allowed set, A/I or A/I/O. Every occurrence in that cell, including those inside longer words, must then decode into that same set. Summing those occurrences gives an exact minimum allowed-letter mass for the specified selector, independent of D's unknown entries. A relaxed assignment mapping constrained cells to A and all others to E attains the mass minimum, but is not an English decipherment or a full language fit.
The five saved solved LP1 groups are scored with their first m runes omitted as well. The largest individual matched shares are:
| Memory | Largest A/I share | Largest A/I/O share |
|---|---|---|
| 1 | 13.7709% | 23.6808% |
| 2 | 13.7887% | 23.7113% |
| 3 | 13.8065% | 23.6129% |
These are empirical references, not universal English limits. A candidate passes only if its forced fraction is no greater than the relevant reference. Pooled reference counts and every group's counts are also retained, but the primary screen uses the more permissive largest individual share.
Shared-table results
The best allowed-letter mass after choosing both affine parameters is:
| Summary | Two tables | Four tables | Eight tables | First k passing A/I | First k passing A/I/O |
|---|---|---|---|---|---|
| Previous | 70.86% | 45.79% | 28.13% | 20 | 10 |
| Sum two | 64.12% | 44.79% | 26.36% | 21 | 10 |
| Difference two | 70.14% | 46.25% | 27.86% | 21 | 11 |
| Sum three | 69.25% | 46.96% | 28.60% | 21 | 11 |
The required mass is the same for both allowed sets; only the reference cap changes. Every k through 19 fails A/I, and every k through 9 fails A/I/O, across the entire stated bank. Minima need not decrease at each successive k, because modulo-k partitions are not a nested family.
At 20 tables, the previous-rune summary has 14 of its 812 affine settings passing A/I. At 10 tables, it has 18 settings passing A/I/O; the sum-two summary has eight. These are capacity survivors, not candidate plaintext solutions. A 20-table bank already exposes up to 580 decoding entries, so its survival must not be mistaken for discovery of a short key.
With all 29 summary states available, minimum forced shares range from 9.81% to 10.59%. The family then has enough capacity for this particular screen. Its unconstrained cells still require a justified decoding rule and successful longer-text validation.
Excluding the two previously identified red initial tokens leaves 81 retained singleton constraints. No shared setting with k through 19 passes A/I; none with k through 9 passes A/I/O. The first passing k values become:
| Summary | A/I with red initials excluded | A/I/O with red initials excluded |
|---|---|---|
| Previous | 20 | 10 |
| Sum two | 21 | 10 |
| Difference two | 20 | 11 |
| Sum three | 20 | 10 |
The source, counters and corpus positions remain unchanged; only the two tokens' ordinary-word constraints are removed.
Does a selector chosen on earlier sections carry forward?
For each summary and k, select the minimum-mass affine selector using sections 0, 1, 2 and 4 only, with ties settled by increasing a then b. Freeze that selector and the state/current-cipher cells constrained by its training singletons. Evaluate sections 5, 6, 7 and 8. The tiny section 3 is outside this established transfer split.
The fitting side contains 42 singletons and the evaluation side contains 41. No D entries or English plaintext are fitted. Frozen training-cell membership predicts only that a corresponding output must belong to A/I or A/I/O, not which letter it is. Additional evaluation singleton constraints are recorded separately and then combined with training constraints under the same shared D bank.
The first k whose training minimum passes the matched A/I reference illustrates the limitation:
| Summary | First training-passing k | Selected a, b | Training forced share | Evaluation singletons covered by frozen training cells | Combined forced share after evaluation constraints |
|---|---|---|---|---|---|
| Previous | 9 | 12, 14 | 13.45% | 4 / 41 | 26.97% |
| Sum two | 9 | 5, 28 | 13.57% | 6 / 41 | 25.78% |
| Difference two | 10 | 7, 24 | 13.54% | 7 / 41 | 25.30% |
| Sum three | 9 | 11, 26 | 13.69% | 2 / 41 | 28.07% |
These prefix-compatible selectors fail the combined screen even against their more permissive A/I/O references. Most evaluation singleton cells were not constrained during fitting. A low training mass therefore did not give a useful shared-table continuation in these examples.
This is a retrospective transfer check of necessary constraints, not a decoded-plaintext holdout or a statistical significance result. All sections have been inspected previously. No arbitrary table was fitted and then represented as a recovered key. Per-k transfer records remain available, including larger banks that retain enough capacity.
Independent section tables remain a real gap
When each section has its own D bank but all sections use one common affine selector, every summary admits some setting at k = 3 for A/I and k = 2 for A/I/O. At k = 8, minimum pooled forced shares are only 5.01% to 5.32%. Allowing different selectors as well is still less restrictive.
Thus the small shared-bank result cannot be generalized to section-specific decoding. Separate banks add many unconstrained entries and remove some cross-section phrase implications. Passing the mass condition supplies no evidence that they are the actual keys.
The repeated phrase still constrains a proposed shared decoder
The six-rune phrase on LP2 pages 27 and 55 begins at global offsets 6,555 and 12,950. Under a shared bank and selector using m preceding ciphertext runes, its final 6 minus m plaintext runes must match, because both the summary state and current ciphertext rune match there.
The previous-rune summary therefore guarantees a matching five-rune suffix; either two-rune summary guarantees four; the three-rune summary guarantees three. Earlier plaintext positions may agree or differ. Different states may decode to the same letter under a many-to-one table, so different state paths do not prove different plaintext. Independent section banks remove the guaranteed cross-section suffix equality.
The script verifies the guaranteed state suffix equality for each recorded best full-corpus selector. These are constraints on a future decoder, not a reading of the phrase.
Controls, reproducibility and limits
Twelve constructed ciphers cover all four summaries at k = 2, 4 and 8. Their fixed state-selected codebooks encode the five known solved groups, assigning the 29 ciphertext symbols among 26 observed plaintext types with three extra homophones. The encoder avoids its previous ciphertext symbol when an alternative homophone is available.
All 12 known-table inverse recoveries are exact. All planted selectors survive the mass screen, and their forced A/I counts never exceed the true plaintext A/I counts. This demonstrates working encoding, decoding and necessary-bound checks. It does not demonstrate unknown-key recovery.
The controls have 34 to 75 ciphertext neighboring repeats, compared with 47 in their plaintext streams. Some improve repetition counts; others worsen them. Random context-specific codebooks can produce a repeated ciphertext symbol even across different plaintext letters. These fixtures are not claimed to reproduce the real book's unusually rare doubles.
An independent three-symbol fixture exhausts 4,536 decoding-table assignments across 12 classifier cases. Its exact minimum allowed-letter mass agrees with the counting bound in every case.
Run with Python and NumPy from the shared evidence directory:
python3 -B context_switch_capacity.py
- Selector bank, exact bound, transfer calculation and controls
- All per-k and per-section results, matched references, control tables and transfer counts
- Unsolved source and singleton definition
- Corrected lexical grouping
- Rune loader
- Solved reference groups
- Unchanged master transcription
Master SHA-256: b0b2e13c3cd35512ee5955a2d9a56c22d7410e283d35dd9c90abbaa7b99279eb. The script checks it and records its own hash. No source transcription or earlier report is altered.
What this changes
The compact shared switching bank is more constrained than its flexibility initially suggests. Enlarging the bank eventually permits the singleton mass, but leaves hundreds of unknown table entries. Independent section tables, different singleton semantics, length-changing encodings and other state functions remain outside the negative conclusion.
No new plaintext is verified. The next useful model needs an independent reason for its table boundaries or state evolution, plus a decoder that explains the longer words and rare doubles together. Merely increasing the number of tables until a necessary screen passes does not provide that reason.