mirror of
https://github.com/allaunthefox/SilverSight.git
synced 2026-07-31 01:25:21 +00:00
Remove HACHIMOJI_DNA_ENCODING.md
This commit is contained in:
parent
17980b6603
commit
5d9f4e83e4
1 changed files with 0 additions and 104 deletions
|
|
@ -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
|
||||
Loading…
Add table
Reference in a new issue