# Session 67: Input relabeling and the recency-cipher frequency gap

**9 October 2026. No new plaintext.** A separate substitution of the numeric inputs does not rescue the tested recency models. The complete affine family and a fixed sample of arbitrary permutations both fail the empirical frequency screen, including a permissive version with separate keys for every substantial section.

This is a bounded follow-up to [Session 66](/sessions/66.html). **All 812 affine input permutations are covered; all 29! arbitrary input permutations are not.** The highest pooled output-rune peak among the tested settings is 5.63% with independent section keys, compared with 8.92% in the least concentrated solved reference group and 12.63% in the pooled reference. Do not turn that comparison into a universal theorem about English.

## The extra key and the scope

Before looking up a position in the changing alphabet, apply a fixed bijection from ciphertext rune values to positions 0 through 28. Output the selected symbol, then move it to the front or back while preserving the order of the others. A fixed final substitution follows.

Unlike merely changing the starting alphabet, this extra input key changes the list movements themselves. The exact histogram from Session 66 must therefore be recalculated for each input key. Once that input key is fixed, any starting alphabet and final substitution still only rename the output placeholders. Their permutations cannot change a particular candidate's output frequencies.

Two input-key banks are fixed before the real-text evaluation:

| Input-key bank | Coverage |
|---|---|
| Affine | Every `(a*c+b) mod29` with `a=1..28`, `b=0..28`: 812 bijections |
| Arbitrary permutations | 4,096 distinct sampled permutations; RNG seed 67001 |

The same banks are used throughout. There is no adaptive permutation search or later addition of promising keys. The arbitrary bank and its byte-level hash are saved in the results.

Analyze the eight substantial unsolved sections, IDs 0, 1, 2, 4, 5, 6, 7 and 8: **12,947 runes**. The nine-rune section is omitted, matching the earlier substantial-section search scope. Compare section, paragraph plus section, page plus section, and corrected lexical-word resets. Every reset restarts the same alphabet; it does not select a new key within a section. Punctuation does not update the list.

The master transcript is unchanged. The apostrophe grouping from [Session 42](/sessions/42.html) is used. The separator-class corrections in [Session 63](/sessions/63.html) do not affect these reset policies or rune values.

## Controls, fitting and validation

Sixteen constructed messages use the saved koan and divinity plaintext, both update directions, section or paragraph resets, and input keys drawn from either predefined bank. Their starting alphabets and final output substitutions are arbitrary random permutations.

Every known-key inverse recovers its plaintext exactly. Every planted input key passes the prefix frequency gate and remains compatible with the continuation. **The true input key also ranks first under the prefix unigram objective in its own bank in all 16 controls.** Complete plaintext recovery is checked using the planted starting and final keys; it is not a claim that the frequency fit recovered those keys automatically or searched all 29! possibilities. These are calibration fixtures using known text; that text also contributes to the reference unigram distribution.

The native histogram calculation is checked against the Python decoder for 48 combinations of input key, reset policy and update direction, comparing both prefix and suffix arrays exactly.

On real text, each section's fitting prefix ends at a complete lexical word, at or before 256 runes and 60% of that section. The objective uses only the pooled solved-LP1 unigram distribution, with a half-count smoothing per rune. Sorting candidate counts against reference probabilities gives the exact best fixed output permutation for this unigram-only objective. Choose the highest-scoring input key separately in each predefined bank.

Then freeze both that input key and its prefix-fitted output substitution. Continue the alphabet state through the remaining text without adding a reset at the split. The continuation does not choose parameters. No English word meanings or literary cribs are fitted here; the saved candidate renderings are diagnostics, not translations.

This produces 128 selected fits: eight sections, four reset policies, two updates and two input banks. None of those selected prefixes reaches the 8.92% reference peak gate. Their continuation peaks range from **3.82% to 5.89%**.

Some other short-prefix settings do cross the peak gate: 272 across the full evaluation. No complete-section setting does. The largest complete-section peak in either bank is **7.27%**. These full-section calculations are additional frequency screens over all input keys, not changes to the frozen prefix selections.

## Pooled results

The table takes the larger result of front and back for each bank. A shared-key result pools placeholder counts under one input key and one combined output substitution across all sections. The more permissive result lets each section choose its own input key from the bank and its own arbitrary combined starting/final permutation, aligning its most frequent output with those of other sections.

These maxima are exact **within the specified bank and key scope**. The sampled-bank maxima are not upper bounds over all arbitrary input keys.

| Reset policy | Affine bank: shared key | Affine bank: independent section keys | Sampled bank: shared key | Sampled bank: independent section keys |
|---|---:|---:|---:|---:|
| Section | 4.07% | 5.43% | 4.16% | 5.63% |
| Paragraph and section | 4.09% | 5.43% | 4.23% | 5.61% |
| Page and section | 4.16% | 5.38% | 4.19% | 5.55% |
| Lexical word | 3.99% | 5.31% | 4.16% | 5.51% |

For comparison, the same saved solved-LP1 reference contains 1,963 runes. Its pooled peak is 12.63%, and individual group peaks range from 8.92% to 14.67%. An unseen plaintext could have a different profile, but these tested candidates do not resemble that reference on this basic property.

## Front and back are equivalent in the arbitrary-key family

Reverse the alphabet and replace every selected position r by `28-r`. Moving the selected symbol to the back of that reversed list produces the same outputs as moving it to the front of the original list.

With arbitrary input relabeling and starting order, the two update rules therefore describe the same family under this reflection. Twelve random-key controls verify the identity exactly. The affine bank is closed under reflection, so its front and back maxima agree in every reset policy. The arbitrary sample is not closed under reflection; sweeping both updates effectively examines it and its reflected counterpart.

The two sweeps are not independent evidence and should not be counted as distinct arbitrary-key mechanisms. The raw 314,112 section-decoding settings include this and other overlap.

## The rare neighbors and repeated phrase

Input relabeling is a bijection, so it preserves whether neighboring ciphertext values are equal. This gives a separate constraint that does not depend on finding the input key.

For each saved solved group, encode its plaintext with the recency rule. After a plaintext symbol's first occurrence in a reset block, its recurrence rank is independent of the starting order. Whenever two adjacent known recurrence ranks are equal, their encoded ciphertext values must be equal under every input substitution. A fixed final alphabet only renames plaintext symbols and preserves those recurrence ranks.

With section resets, the known groups force an encoded equal-neighbor rate of at least **5.68% to 9.14%**, regardless of initial and input permutations. The real substantial-section text has **86/12,939 = 0.665%** identical neighbors under that matching boundary policy. This is another mismatch with the saved references, not a proof about every possible plaintext. The analogous lower bound is weak with word resets, reaching zero in some reference groups; it must not be generalized to that case. All four policies are recorded in the results.

The earlier repeated-phrase word pattern also cannot be carried across input keys. For the six distinct ciphertext values `[23,11,1 | 17,18,10]`, a phrase without an internal reset has 60 possible output-equality patterns across the affine bank. The sampled bank has 63 for front and 62 for back. Thus the former `A B A` first-word constraint belongs to particular input assignments, not the whole family.

For a fixed input assignment, the same uninterrupted index sequence always produces the same internal equality pattern, regardless of the current alphabet's labeling. That does not establish equal plaintext at both actual locations: their current alphabet states can assign different symbols to the same pattern.

## What this changes

The affine input-key gap is closed for the stated models, and the arbitrary sample supplies no lead. The controls demonstrate that the implemented screen can retain and rank the planted input keys in these fixtures. The real frequency gap persists through the frozen continuations and complete-section checks.

Deprioritize this simple recency family. Arbitrary input permutations outside the sample, other state updates, phase-dependent substitutions, skipped updates, null symbols and keys that change inside a section remain outside this test. More computation in this family needs a specific new constraint or independent clue; the sampled negative result alone does not justify claiming that every possible key fails.

## Reproduce and inspect

Python, NumPy, SciPy and a C++17-capable `g++` compiler are required. The script compiles the fixed histogram kernel into a temporary directory and removes it afterward. No downloaded messages or embedded destinations are executed.

```sh
python -B recency_input_audit.py
```

- [Analysis and control script](recency_input_audit.py)
- [Histogram kernel](recency_input_kernel.cpp)
- [Results, sampled input keys, every complete-section peak and selected continuations](recency_input_results.json)
- [Recency definitions and Python decoder](recency_key_bound.py)
- [Rune loader](lp_core.py)
- [Saved solved-group definitions](word_core.py)
- [Corrected lexical grouping](lexical_words.py)
- [Source definition](reset_state_audit.py)
- [Unchanged master transcription](liber-primus__transcription--master.txt)

Master SHA-256: `b0b2e13c3cd35512ee5955a2d9a56c22d7410e283d35dd9c90abbaa7b99279eb`. The script checks it before analysis. The complete sampled bank and reference scope are retained; no prior report or master source is overwritten.
