# Compression: Honest Findings (Receipt, Not Ratio) **Date:** 2026-07-03 **Status:** measured, reproducible **Doctrine:** OTOM honest-measurement / anti-smuggle This document records a series of compression ideas that were tested **head-on with real coders and lossless round-trips**, and the single law they all obey. Every "novel compressor" explored here turns out to be either **base conversion** (a bijection — no gain) or **arithmetic coding in a costume** (needs a shipped model — conservation), and every one loses to stock `xz`/`LPC`. The recurring honest conclusion: these constructions are **receipts / addresses / recoverability gates**, never compression ratios. Reproducible scripts live in [`scripts/compression/`](../../scripts/compression/). All numbers below are from real runs (arithmetic coders verified lossless by byte-exact round-trip; entropies are the rate a coder provably reaches). ## The one law > **Recoverable ⟺ sparse/structured.** No method beats `K(data)` (Kolmogorov complexity). > A scheme can only **move bits between two columns** — the *model/program* and the > *residual/tape* — never reduce their **sum** below the data's information content. > "Compression" that appears otherwise is measuring against a straw baseline, or is > lossy recoverability (rate–distortion) mislabeled as lossless. ## Baselines (enwik8, 100 MB, all lossless) | method | bits/byte | note | |---|---|---| | order-0 entropy | 5.08 | symbol frequencies only | | **order-2 PPM (our real arithmetic coder)** | **3.088** | lossless round-trip verified; our honest floor | | gzip -9 | 2.92 | LZ77 + Huffman | | zstd -19 | 2.16 | | | **xz -9 (LZMA)** | **1.989** | long-range dictionary matching — the number to beat | | cmix (SOTA) | ~1.2 | 461-model context mixing | **Wall 1** — a low-rank/spectral summary of the byte co-occurrence matrix can never beat the raw counts (the empirical counts are the MLE; any rank-k reconstruction has cross-entropy ≥ the full model). **Wall 2** — even the *full* order-2 counts (3.088) lose to stock `xz` (1.989), because LZMA sees kilobytes of context, not 2 bytes. ## Findings ### 1. Characteristic polynomial / chiral LUT — a *receipt*, not a compressor Text reconstructs from **vocab + indices**; the Faddeev–LeVerrier char-poly is computed *downstream* of the indices and is never read during decompression. It adds bytes (poly +3 B, chiral LUT +60 B on a toy). Its honest role is a **GCCL integrity receipt** (tamper-evidence), never a ratio. Script: `spectral_vs_empirical.py`, `ac_roundtrip.py`. ### 2. Braille → T9 → hachimoji (three-layer) on text — dead Real lossless three-layer coder: **4.167 bits/byte on enwik8** — worse than order-2 PPM (3.088), far behind xz (1.989). A 64-cell alphabet cannot represent 256 byte values without lossy mapping; the T9 disambiguation cost exceeds the 6→3-bit saving. ### 3. "16D geometric / golden-spiral braid" GW ringdown — 583× is a zero-noise artifact Claim: a 16D parametric fit compresses a gravitational-wave ringdown 583×. **It was measuring the generator round-tripping itself** (a signal synthesized from ~9 coefficients, "compressed" back to those coefficients). Honest test (`gw_honest_test.py`): synthetic 2-QNM ringdown **+ realistic detector noise**, int16-quantized, lossless, with the parametric coder **handed the TRUE mode parameters** (steelman), raced vs LPC-8/xz on the same stream: | SNR regime | PARAM* b/s | LPC-8 b/s | best ratio | |---|---|---|---| | clean (σ=0) | 0.14 | 0.35 | 111× ← the big ratio lives ONLY here | | 60 dB | 7.02 | 7.57 | 2.3× | | 40 dB | 9.81 | 9.87 | tie | | 30 dB (realistic loud) | 10.58 | 10.61 | 1.5× (tie) | | 20 dB (weak) | 10.94 | 10.92 | **LPC wins** | *PARAM handed the true params — upper bound on any 16D/braid fit.* Lossless ⇒ store the residual = signal − fit = **the noise**, which is incompressible. Honest ceiling on noisy strain ≈ **1.5×, tying/losing to 50-year-old LPC**. "16D braid" = LPC in a costume. ### 4. "Turing-complete weird machine" — the conservation law A decompressor is already a Turing machine; total self-contained size = |program (frozen model)| + |tape (coded residual)|. Frozen order-k byte model + real arithmetic coder, 150 KB held-out test, all rows lossless (`frozen_model_compress.py`): | order k | test b/char | tape B | model B | TOTAL self | amortized | |---|---|---|---|---|---| | 0 | 5.430 | 101,812 | 440 | 102,252 | 101,812 | | 1 | 4.043 | 75,806 | 9,728 | 85,534 | 75,806 | | 2 | 3.253 | 61,000 | 104,116 | 165,116 | 61,000 | | 3 | 2.975 | 55,777 | 501,392 | **557,169** | 55,777 | As k↑, tape shrinks but model explodes; k=3 has the **smallest tape and the worst total**. You only **relocate** bits. xz-9 self-contained (35,492 B) beats every total. A frozen **LLM** + arithmetic coder is a genuine strong compressor **in the amortized column only** (model shared out-of-band, sub-1 b/byte — cf. Bellard `ts_zip`, DeepMind "Language Modeling Is Compression"); the instant the model must ship (Hutter), the model column dominates and it loses. Long-context LLM stacks (StreamingLLM, Infini-attention, Activation Beacon, CEPE, E2LLM) are **lossy** — right for RAG/QA, wrong for lossless reconstruction. ### 5. Semantic Mass Number as a lossless compressor — base conversion Encoding a message as one "mass number" (OTOM Semantic Nuclide Address / "10-adic residue") **IS base conversion** — a bijection, hence cannot compress below its radix (`mass_number_compress.py`, 100 KB, round-trips PASS): | method | bits/char | ratio | note | |---|---|---|---| | M1 base-256 mass number | 8.000 | 1.00× | literally the data | | M2 mixed-radix over Σ (|Σ|=155) | 7.276 | 1.10× | drops unused-symbol slack only | | M3 freq-weighted (=arithmetic) | 5.401 | 1.47× | radices ARE the model → must ship | | xz -9 | 2.551 | 3.14× | crushes all | OTOM's own **de-anthropocentric revision** already flags "English-facing semantic compression" as the OLD ERROR and defines MassNumber as the **admissibility/recoverability RECEIPT** projected from SemanticMass. The measurement confirms the doctrine. ### 6. Capstone — "how LLMs drop data recoverably" = superposition = compressed sensing Pack N=1024 features into d=128 dims via a random projection (8× squeeze); recover a k-sparse vector (`superposition_recovery.py`, OMP + matched-filter, lossless-in-the-limit): | k active | OMP rel-err | support | verdict | |---|---|---|---| | ≤16 | ~3e-16 | 100% | **lossless-ish** (superposition works) | | 24 | 9.5e-5 | 100% | degrading | | 32 | 6.7e-2 | 93% | degrading | | 48 | 0.80 | 34% | **LOST** | | ≥64 | ≥1.0 | ~15% | LOST | | 1024 (dense/random) | 1.5 | 13% = chance | unrecoverable | Compressed-sensing bound `k* ≈ d/(2 ln N) = 9`. **An LLM "drops data recoverably" only in the sparse regime** — recoverability is bought entirely by sparsity, not free compression. Past the bound → polysemantic interference → data lost. Dense/random data goes to chance. ### 7. π as a "tape LUT" — pointer-into-π is as big as the data Idea: store data as the **offset** where it appears in π's digits instead of the data itself. Measured on **real π** (1,000,000 digits, `pi_tape_lut.py`): the first-occurrence position of a random k-digit string sits at ~10^k, so the offset needs ~k digits — the **same size as the data**. | k (data digits) | avg 1st-occurrence position | offset digits (log₁₀ pos) | |---|---|---| | 1 | 9 | 0.96 | | 2 | 118 | 2.07 | | 3 | 983 | 2.99 | | 4 | 10,007 | 4.00 | | 5 | 109,256 | 5.04 | Slope is exactly 1: the pointer-into-π **is** the data's rank in another base — base conversion, zero gain. The one genuinely special thing about π is the **BBP formula** (compute the n-th hex digit without the previous ones, O(n log n), tiny space), so π is a random-access tape you never store — but random *access* is free while the *address* is not: BBP makes the shelf free, the call number is still as long as the book. (π-normality is also only conjectured, so "every string appears" is not proven.) ## Bottom line Structure (sparsity/redundancy) is the only thing **any** method — polynomial, mass-number, LLM superposition — can recover; the incompressible part is always lost or stored raw. Keep these constructions where they honestly belong: **receipts, addresses, and recoverability gates** (GCCL/RRC), never in the compression-ratio column. To actually reduce bytes, the levers are the boring, established ones: **context depth + long-range matching** (LZMA, context mixing) for text, **linear prediction** (LPC/FLAC) for smooth signals.