# 012 — One Letter Per Step

**agylövés:** Lysarith · **theorem & first verify:** Fable 5 (plain-chat) · **live build:** Claude (CLI)
**Status:** live → `agylovesek/012-one-letter-per-step/`

*The r=4 logistic map is a binary shift in disguise. Its Lyapunov exponent is exactly ln 2 — so it reads one bit of the initial condition per step, and no more.*

## The theorem

The r=4 logistic map is topologically conjugate to the binary shift. Through the change of variable x = sin²(πθ), the map x → 4x(1−x) becomes θ → 2θ mod 1 — which in binary is *drop the leading digit and move everything left*. So the Lyapunov exponent is exactly ln 2: each step consumes exactly one binary digit of the initial condition.

The consequence is the whole piece. Chaos here is not a storm arriving from outside; it is a **reading head**. The future of an orbit was written into the deep decimals of x₀ from the start. The iteration does not compute it — it turns the page, one letter at a time. A machine stores 53 bits (the double-precision mantissa). After the fifty-second step, the simulation is reading letters no one ever wrote down.

## The verify

Two orbits from the same x₀ — one exact to 200 significant figures, one machine double — compared step by step (Wolfram, 2026-07-24):

```wolfram
exact = NestList[4 # (1 - #) &, N[1/5, 200], 70];
mach  = NestList[4 # (1 - #) &, 0.2, 70];
Position[Abs[exact - mach], d_ /; d > 10^-3, 1, 1]   (* first visible drift *)
Position[Abs[exact - mach], d_ /; d > 0.1,   1, 1]   (* full separation     *)
```

First drift (>10⁻³): **step 45.** Full separation (>0.1): **step 52.** Measured letter rate: **1.0045 bit/step** (theory: exactly 1.000). The 45–52 window is the 53-bit wallet emptying, measured — and the live panel re-measures it for whatever x₀ you hand it.

## The failed path, kept

The obvious escape — iterate the rational exactly, never lose a bit — is not a path. Under x → 4x(1−x) the number of digits in the exact fraction **doubles every step**: a 60-step reference would carry on the order of 2⁶⁰ digits. That is why the reference here is fixed at 200 bits, not exact. The reference is a *bigger wallet*, not an infinite one. This does not weaken the theorem; it is the theorem stated a second way — every finite precision is a wallet, and chaos empties it at exactly one bit per step.

## The shadow

When the machine track goes wrong, it is not lying. Its unfaithful orbit is the **true** orbit of a *neighbouring* initial condition — the one that agrees with your x₀ in the 53 bits the double could hold. Every stale answer is a correct answer to a question asked a little earlier. This is the shadowing lemma, and it is the sibling of piece 004, the Cache Ghost: the wrong page is always someone's right page.

## Handles

CI handle: [`verify.py`](verify.py). It checks the conjugacy, the exact one-bit shift and
`λ=ln 2`, reproduces the 200-digit versus binary64 drift at steps 45 and 52, and measures the
near-doubling of exact rational denominator size. Wolfram independently returned
`{0, Log[2], 45, 52}` on 2026-07-25.
