BOUNDARY AUDIT AND INTERPRETATION CORRECTION

Finding
-------
The parent's boundary observation is mathematically correct. If each plaintext
symbol applies a fixed position permutation and the emitted card is always at
the same top position, two decks undergoing the same word retain a constant
card-label correspondence. This correspondence applies before the first action
as well as after every action. Independent starting decks do not change that.

In the Noita data, before the proposed E4[68:98]/W4[71:101] word, both emitted
card26: E4[67]=W4[70]=26. The initial correspondence must therefore map26 to26.
Inside the proposed word, E4[90]=26 but W4[93]=21, forcing26 to21. Contradiction.
This does not depend on a base permutation, ordinary top swaps, or how many
additional fixed hidden swaps a plaintext instruction contains.

Why this is an assumption correction, not a broad cipher exclusion
-----------------------------------------------------------------
A30-observation ciphertext isomorph can encode29 equal transitions between
those observations. Its first observation can be the incoming state of the
repeated plaintext rather than the output of a shared first action. The strict
30-action equality adds that first action and consequently adds one MORE
observable boundary state. That extra31-observation pattern is not isomorphic.
An isomorphic observed window does not justify its one-symbol left extension.

The appropriate weaker hypothesis for the current fixed-output experiments is:
  E4[69:98] = W4[72:101] = E5[70:99] in plaintext actions (29each),
  W1[35:52] = W1[65:82] in plaintext actions (17each).
The corresponding ciphertext observations still include E4[68],W4[71],E5[69]
and W1[34],W1[64] as boundary states. These equalities remain hypotheses;
ciphertext isomorphism alone does not prove any plaintext correspondence.

Primary-source support
----------------------
Lymm37 wiki, Proof-that-GAK-has-perfect-isomorphism.md, explicitly proves
  c(g*a)=c(a) iff c(g*b)=c(b)
for arbitrary initial states a,b. This IS the incoming-state return invariant.
It is foundational published GAK theory, not a new theorem discovered here.
https://github.com/Lymm37/eye-messages/wiki/Proof-that-GAK-has-perfect-isomorphism
Local source: prior_art_sources/lymm-wiki/Proof-that-GAK-has-perfect-isomorphism.md

CodeWarrior0 Analytical Overview, local lines547-549, explains that a recurring
four-letter plaintext word can produce a five-letter ciphertext isomorph whose
first ciphertext letter is not part of the plaintext word. Lines598-599 explain
the same incoming-ciphertext-state convention algebraically for ciphertext
autokey. This is a direct prior warning against the boundary inference.
https://docs.google.com/document/d/1QeagH8TklJsd8iribMtT5LIRL91laOUU_tFcVl7OOqA/edit
Local source: prior_art_sources/analytical-overview.txt

mvelzel/eye-vibe scripts/search_sparse_deck.py lines103-132 constructs decoded
plaintext equality comparisons over all30 positions starting68/71 (and analogous
18-position windows). Therefore that prior sparse-deck implementation makes
the same stronger assumption. A prior implementation is not independent
justification for the assumption. Its negative search results should be read
with that restriction; this audit does not invalidate its calibrated code.
https://github.com/mvelzel/eye-vibe/blob/0ba8ca9ed4660d74f68abafa3e4743935222e885/scripts/search_sparse_deck.py

By contrast, test_affine_isomorph_embedding.py maps CIPHERTEXT labels across
the30-observation contexts. Such context-map constraints remain compatible
with29 shared transitions; the boundary correction does not automatically
invalidate those affine embedding tests or our independent repair census.

Scope and exceptions
--------------------
The pre-word observation argument requires a fixed output location after each
action. XGAK permits plaintext-specific output positions. In that family the
previous observation may come from a different position depending on the
previous plaintext symbol, so it need not identify the two incoming top cards.
Do not claim this boundary contradiction excludes all XGAK, all perfectly
isomorphic ciphers, or every hidden-state cipher.

Implications for the lab
------------------------
The previous strict30/30/18 calculations remain correct conditional results,
including T003-C001/C002 and reviewed T000/T002 pair counts. Their research
interpretation is superseded: they cannot be promoted as meaningful evidence
against general deck/GAK mechanisms without addressing this boundary issue.
Preserve them as a record of assumption sensitivity, and rerun relevant
forward experiments with29/29/17 action windows. Alignment-free results such as
the88-exception lower bound and the729-pair baseline are unaffected.

T003-C002's12-step proof uses the removed first action and does not survive
this correction. The prior17-step proof at old offset11 uses an interior
action, remains applicable to M001, and should be retained for its narrow
scope. Cipher agent is independently auditing the weaker M001 family.

check_boundary.py verifies all raw indices and supplies a five-state additive
cipher counterexample: two isomorphic four-observation segments have three
shared internal actions but different leading actions. Thus the interpretation
distinction is demonstrable even in an elementary perfectly isomorphic cipher.
