From 5d9f4e83e413df7cf47fd790e60cc466f43d9289 Mon Sep 17 00:00:00 2001 From: Allaun Silverfox <28494262+allaunthefox@users.noreply.github.com> Date: Thu, 2 Jul 2026 03:36:22 +0200 Subject: [PATCH] Remove HACHIMOJI_DNA_ENCODING.md --- docs/HACHIMOJI_DNA_ENCODING.md | 104 --------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 docs/HACHIMOJI_DNA_ENCODING.md diff --git a/docs/HACHIMOJI_DNA_ENCODING.md b/docs/HACHIMOJI_DNA_ENCODING.md deleted file mode 100644 index d1e86455..00000000 --- a/docs/HACHIMOJI_DNA_ENCODING.md +++ /dev/null @@ -1,104 +0,0 @@ -# Hachimoji DNA Encoding Specification - -**Version:** 0.1 -**Status:** Draft -**Purpose:** Computational substrate, not compression format. - -## 1. Alphabet - -Eight bases, ASCII-ordered for monotone lexicographic sorting: - -| Index | Base | Phase | Bits | -|-------|------|-------|------| -| 0 | A | 0° | 000 | -| 1 | B | 45° | 001 | -| 2 | C | 90° | 010 | -| 3 | G | 135° | 011 | -| 4 | P | 180° | 100 | -| 5 | S | 225° | 101 | -| 6 | T | 270° | 110 | -| 7 | Z | 315° | 111 | - -**Key property:** ASCII sort order = index order = lexicographic rank. -This means `sorted(sequences)` produces the same order as `sorted(sequences, key=dna_to_int)`. - -## 2. Symbol Encoding - -Each symbol (byte, word, or chunk) maps to a fixed-length DNA sequence. - -- **1-byte chunks:** 256 symbols → 3 bases/symbol (8³ = 512 ≥ 256) -- **2-byte chunks:** 65,536 symbols → 6 bases/symbol (8⁶ = 262,144 ≥ 65,536) -- **n unique symbols:** `ceil(log₈(n))` bases/symbol - -The LUT assigns sequences by rank: -- Rank 0 → "AAA...A" (lowest) -- Rank 1 → "AAA...B" -- Rank n → highest sequence - -## 3. Monotone Property - -If symbols are ranked by frequency (most frequent = rank 0), then: -- Most frequent symbol → shortest/lowest DNA sequence -- Lexicographic sort of DNA = frequency sort of symbols -- This is NOT compression — it's structured representation - -## 4. LUT Format - -```json -{ - "format": "hachimoji_lut_v1", - "bases": "ABCGPSTZ", - "chunk_size": 1, - "bases_per_symbol": 3, - "entries": { - "AAA": "20", - "AAB": "65", - "AAC": "74" - } -} -``` - -- Keys: DNA sequences (base-8 encoded ranks) -- Values: hex-encoded byte chunks -- Portable: JSON, human-readable, self-describing - -## 5. File Format - -``` -.dna file: raw DNA sequence (text, A-Z only) -.lut file: JSON LUT (see above) -.meta file: encoding metadata (optional JSON) -``` - -## 6. Roundtrip Guarantee - -``` -decode(encode(data)) == data -``` - -Verified at encode time. No lossy steps. No approximation. - -## 7. Computational Properties - -The DNA sequence is not just encoded data — it's a computational address: - -- **Sequence index** (base-8 integer) = symbolic rank -- **Lexicographic order** = rank order (monotone) -- **LUT lookup** = O(1) per symbol -- **Sortable** by standard string sort (= rank sort) -- **Portable** across systems (plain text + JSON) - -## 8. Integration with SilverSight - -- `HachimojiCodec.lean` — formal encode/decode specification -- `HachimojiLUT.lean` — LUT hierarchy (k=2, k=6, k=50) -- `PhaseCircle` — ℤ/360ℤ address space -- `dna_lut.py` — Python LUT implementation -- `dna_encode_file.py` — file encoder/decoder - -## 9. Not This - -- ❌ Not a compression format (bits/byte not the goal) -- ❌ Not a DNA storage format (no synthesis/sequencing constraints) -- ❌ Not a cryptographic scheme (no security claims) -- ✅ A computational substrate for manifold/QUBO/eigenvalue work