Research journal / Session 68Notebook updated 12 Oct 2026
Session 68 / 73

Homophonic decoding and the singleton capacity limit

Follow-up: Session 69 permits compact context-selected homophonic tables. Small shared banks still fail the stated mass screen, while independent section banks retain capacity. Read the selector audit and transfer checks.

A fixed many-to-one rune decoding table faces a severe constraint. If the audited one-rune groups are ordinary English A/I words, one shared table forces 96.58% of the unsolved text into A or I and permits at most three distinct plaintext runes. Allowing archaic standalone O permits four. Separate section tables weaken the constraint but still force 33.27% into the allowed letters. No new plaintext or key is recovered.

This result is conditional on the decoding table, word boundaries and singleton interpretation stated below. It does not exclude decoding tables selected by context, other languages, abbreviations, nulls or variable-length encoding.

Why test this family

The rare neighboring repeats suggest an encoder that avoids reusing its previous output symbol. Homophonic encoding can do that: give a plaintext letter several ciphertext symbols and choose a different one when available. The encoder can use memory while the decoding table remains fixed.

A shared fixed table also decodes the repeated six-rune phrase identically at both locations. This makes the family worth checking against both observations. It does not identify the actual mechanism or establish that the repeated phrase has identical plaintext.

Session 41 addressed fixed invertible whole-word mappings and explicitly left homophonic choice outside its conclusion. Here the decoding table may be noninjective: several ciphertext types may decode to the same plaintext type. This is a different capacity test, using the corrected singleton inventory from Sessions 42 and 43.

Data and assumptions

The source is LP2 pages 0 through 55, containing 12,956 runes. The corrected lexical grouping has 83 one-rune tokens spanning 28 of the 29 ciphertext rune types. This session reuses the audited boundaries; it performs no new image audit or authentication of the original puzzle files.

The tested model has these assumptions:

  • Each ciphertext rune decodes to exactly one plaintext rune.
  • A decoding table is fixed within its stated key group. The encoder may choose homophones using arbitrary state.
  • Retained separators are plaintext word boundaries.
  • Each retained ordinary one-rune word decodes into A/I, or into the more permissive A/I/O set.

O is included as a sensitivity for archaic vocatives, relevant to the religious and literary hypotheses. Neither set accounts for arbitrary abbreviations, initials, labels or non-English words. Those require an explicit exception or a different model.

Three table scopes are checked: one shared table; independent tables for each nonempty section; and a shared table for sections 6 and 8, which contain the repeated phrase, with independent tables elsewhere. The last scope is a sensitivity that preserves identical decoding of that phrase, not evidence of shared keys.

An exact bound before searching keys

For a given table group, let T be the ciphertext types that occur as one-rune words, and let S be the allowed plaintext letters.

Every type in T must decode into S. Consequently, every occurrence of those types anywhere in the same table group must decode into S, including occurrences inside longer words. Count those occurrences to obtain the minimum allowed-letter mass. This conclusion is independent of the unknown table entries and of how the encoder selected homophones.

The maximum output alphabet is:

number of active ciphertext types outside T + min(size of S, size of T)

With one shared table, T contains 28 types. Only K is unconstrained, with 443 occurrences. Thus at least 12,513 / 12,956 = 96.5807% of output positions belong to S. The output alphabet contains at most 3 runes for A/I, or 4 for A/I/O. These are exact necessary bounds under the stated premises, not a sampled key-search result.

Table scope Forced positions Minimum A/I or A/I/O share
One shared table 12,513 96.58%
Independent section tables 4,310 33.27%
Sections 6 and 8 share; others independent 5,071 39.14%

For comparison, the five saved solved LP1 groups contain 1,963 runes. Their pooled A/I share is 12.28%; the largest individual share is 13.88%, in the koan. For A/I/O, the pooled share is 21.96%, and the largest individual share is 23.78%. These are empirical references, not universal limits on English.

The solved groups individually use 20 to 25 plaintext rune types; their union uses 26. The shared-table cap of three or four is therefore especially restrictive. Separate section tables have their own caps, shown below for A/I.

Section Runes Singleton tokens Singleton types Maximum output rune types
0 729 5 5 26
1 1,145 8 7 24
2 1,729 11 9 22
3 9 0 0 8
4 1,894 18 12 19
5 1,021 5 5 26
6 1,524 12 8 23
7 1,589 9 9 22
8 3,316 15 13 18

The nine-rune section is included in totals but supplies no singleton constraint. The other sections all contain the full 29-type ciphertext alphabet. Alphabet caps for independent tables apply within each section, not to the union of their plaintext.

How many singleton exceptions would rescue the mass condition?

Releasing a ciphertext type from the singleton constraint requires treating all its singleton occurrences within that table group as exceptions. Ignoring just one occurrence cannot release it if another still requires an A/I interpretation.

Each constrained type therefore has a cost, its singleton-token count, and a benefit, the number of corpus positions it would free. An exact weighted subset calculation finds the minimum exception cost that permits the forced mass to fall at or below each reference share. It does not search for English plaintext.

Scope Allowed letters Minimum exceptions to reach pooled reference Minimum exceptions to reach largest individual reference
Shared A/I 68 / 83 63 / 83
Shared A/I/O 54 / 83 50 / 83
Independent sections A/I 35 / 83 31 / 83
Independent sections A/I/O 14 / 83 11 / 83
Sections 6 and 8 share A/I 38 / 83 35 / 83
Sections 6 and 8 share A/I/O 19 / 83 16 / 83

Using the largest individual reference is more permissive than using the pooled one. Even on that comparison, the shared table requires at least 63 singleton exceptions for A/I, or 50 for A/I/O.

These are exact minima for the relaxed mass condition, not sufficient conditions for readable text. The retained witnesses map constrained types to A and released or unconstrained types to E, solely to verify the reported exception cost and mass. They are not proposed keys, and alphabet, grammar, vocabulary and continuation constraints remain unfitted. The counts also do not prove that any audited boundary is wrong: an accurately read separator can still have a different semantic role.

Two red initial tokens, at LP2 page 6 rune offset 75 and page 54 offset 0, are separately excluded from the singleton premise. This leaves 81 tokens still spanning 28 types. The shared-table mass and alphabet caps do not change. Minimum exceptions against the largest individual reference become:

Scope A/I, among 81 retained tokens A/I/O, among 81 retained tokens
Shared 62 49
Independent sections 29 10
Sections 6 and 8 share 33 15

With red initials excluded, independent-section forced mass is 32.02%, and the phrase-sharing scope forces 37.45%. Removing those two special tokens alone does not rescue a shared table.

Controls and a scope counterexample

Two small-alphabet fixtures exhaust 3,125 five-symbol tables and 256 four-symbol tables. For every exception budget, exhaustive minimum allowed-letter mass and maximum output alphabet agree with the bounds. This validates both the counting argument and the exception-budget implementation on fixtures where exhaustive comparison is possible.

Four genuine homophonic encoders are constructed from solved plaintext. Each has 29 ciphertext codes, extra homophones for selected letters, stateful choice that avoids the previous ciphertext symbol when possible, and one fixed inverse decoding table. All four recover their source plaintext exactly and satisfy the singleton mass and alphabet bounds.

Known source group Plaintext neighboring repeats Encoded neighboring repeats Exact recovery
Warning 5 0 Yes
Koan 14 2 Yes
Divinity 18 2 Yes
Instruction 3 0 Yes

These controls demonstrate that homophonic choice can suppress repeated neighbors without requiring a changing decoding table. They do not fit the real book or explain all its statistics.

A separate counterexample deliberately violates the fixed-table premise. Three copies of the known koan are encoded with a different bijective substitution for each word. Their 39 singleton words cycle through 28 ciphertext types. The specified word-dependent tables recover all 2,334 plaintext runes exactly, with 24 plaintext types. An incorrectly imposed shared-table assumption would cap that output alphabet at three.

Thus 28 singleton ciphertext types do not rule out context-dependent decoding. This counterexample marks the scope boundary; it supplies no Cicada key and is not a proposed solution.

What changes next

Deprioritize a shared fixed homophonic table when the one-rune groups are ordinary English words. Independent section tables remain a weaker alternative, especially if O and explicit token exceptions are allowed, but require a concrete rationale for those exceptions and must pass longer-word validation.

The next useful question is which premise an independently motivated mechanism changes: singleton semantics, one-rune length preservation, or fixed decoding within a section. A new model should explain those changes and then recover known constructed plaintext before being fitted to the unsolved corpus. Arbitrarily assigning a new table to every word has enough flexibility to escape this bound, but the counterexample gives no evidence for that mechanism.

No verified new plaintext is found. No ancient-language, religious-source, Stephenson or Berkeley attribution follows from this capacity calculation.

Reproduce and inspect

Run with Python and NumPy from the shared evidence directory:

python3 -B homophone_capacity_audit.py

Master SHA-256: b0b2e13c3cd35512ee5955a2d9a56c22d7410e283d35dd9c90abbaa7b99279eb. The script checks it before analysis. Prior reports and the master source are preserved.