reversible-ca · bijective block updates

1D Margolus toy: erasure that deletes nothing. Every paired-cell update is a permutation of 2,304 block states, so the whole run is invertible, tick for tick.

self-test

block map is a permutation…
512-tick round trip exact…

scenario

seed (hot vacuum)
cold trap at cell 0

transport

speed 16/s

ledger

tick0
directionforward
matter (ε / L)0 / 0
heat in field0 bits
radiated to trap0 bits
annihilations0
rebirths (fluctuations)0

legend

ε eraser L leaf heat (noise bits) codeword nibble ❄ trap cell

events

how it works

A tick pairs adjacent cells into blocks (bracket marks above the strip; the pairing shifts by one every tick) and applies one table f = mix ∘ react per block. react is a set of disjoint swaps: a lone ε swaps with an empty neighbour (transport); ε meeting L with both noise nibbles cold (0000) swaps with two empties carrying the codeword pair 1011·1101 — the annihilation's bits become heat instead of vanishing. mix swaps the two noise nibbles, so heat drifts ballistically. Swaps are their own inverse, so f is a permutation and stepping backward (f⁻¹, pairings in reverse order) reconstructs history exactly. Consequences you can watch: a hot annihilation site stalls and the ε bounces off; on a closed ring the two codeword nibbles refocus and the pair is reborn (Poincaré recurrence); the cold trap exports heat to a recorded bath tape, which kills the recurrence but keeps even the open system exactly reversible.
state dump (table view)