feat(quine): Weird Machine spec — self-replicating FAMM/DNA engine

Turing-complete machine built on AVM + FAMM + DNA co-evolution stack:
- 5-layer architecture (AVM → FAMM → DNA → Quine → Co-evolution)
- Self-replication protocol: Introspect → EncodeSelf → Replicate → Verify
- Quine structure: [bootstrap][compressed_DNA][checksum]
- Gödel boundary handling (graceful degradation via QUARANTINE/HOLD)
- Determinism guarantees (Q16.16, fixed seeds, no float)
- SilverSight Receipt per replication cycle (with generation counter)

Gold standard: machine outputs binary that, when executed,
produces functionally identical machine with same self-description.

Refs: SilverSightCore.lean (AVM), FAMM.lean (delay memory),
dna_codec.py (encoding), GODEL_BOUNDARY (boundary handling),
FAMM_BAKER_ANALOGUE.md (progress guarantee)
This commit is contained in:
Allaun Silverfox 2026-06-23 01:05:57 -05:00
parent dbd6c70f2f
commit fa9c821437

276
docs/WEIRD_MACHINE_SPEC.md Normal file
View file

@ -0,0 +1,276 @@
# SilverSight Weird Machine — Self-Replicating FAMM/DNA Engine
## The Goal
Build a Turing-complete machine on top of the FAMM/DAG/DNA co-evolution stack that:
1. Executes arbitrary computations via the AVM ISA
2. Stores state in FAMM delay-line memory
3. I/O through Hachimoji DNA encoding
4. **Self-replicates**: outputs its own description as a binary quine
## Architecture: 5 Layers
```
LAYER 1: AVM CORE (Turing-complete executor)
├── Instruction set: Classify, LookupLib, Merge, Reflect, Verify, Halt
├── Stack: HachimojiState (8 values)
├── Arithmetic: Q16.16 fixed-point
└── Transition: δ : S × I → S'
LAYER 2: FAMM MEMORY (delay-line storage)
├── Cells: {data, delay, delayMass, delayWeight} in Q16.16
├── Access modes: read, write, adjustDelay
├── Frustration: competing delay constraints encode curvature
└── Scars: persistent memory of constraint violations
LAYER 3: DNA I/O (8-symbol information substrate)
├── Alphabet: A B C G P S T Z ↔ Φ Λ Ρ Κ Ω Σ Π Ζ
├── Encoding: arbitrary data → DNA sequences
├── Monotonicity: lexicographic sort = information ordering
└── Error handling: Gödel boundary → QUARANTINE/HOLD
LAYER 4: SELF-REPLICATION (quine engine)
├── Self-description: machine reads its own state
├── DNA encoding: state → DNA sequence (self-description)
├── DNA decoding: DNA sequence → state (reconstruction)
└── Boot: execute DNA to reconstruct original machine
LAYER 5: CO-EVOLUTION (the learning loop)
├── DAG: chunked execution with checkpoints
├── FSDU: scar computation from partial results
├── Coordinate transform: Fisher eigenstructure rotation
└── Baker guarantee: |Λ_t| ≥ ε(X_t) OR Ω(X_t) > 0
```
## The Weird Machine ISA
Beyond the base AVM, the weird machine adds self-referential instructions:
```
Base AVM: Weird extensions:
Classify expr Introspect -- read own state
LookupLib name EncodeSelf -- output self as DNA
Merge s1 s2 Replicate -- construct copy from DNA
Reflect fuel Mutate -- introduce controlled variation
Verify receipt Heal -- repair from scar field
Halt Boot -- cold start from DNA seed
```
### Key: Introspect
```
Introspect: S → S × DNA
Reads the current machine state (all FAMM cells, all DAG nodes,
scar field, current instruction pointer) and encodes it as a
DNA sequence. This IS the self-description — the machine
reading its own memory.
Deterministic: same state → same DNA (required for replication)
Uses: dna_codec.py encode functions with fixed seed
```
### Key: EncodeSelf
```
EncodeSelf: S × DNA → Binary
Takes the self-description DNA and the machine's operational
code (the AVM implementation) and produces a binary that:
1. Contains the DNA sequence (compressed/encoded)
2. Contains the bootstrap code (minimal AVM)
3. When executed: decodes DNA, reconstructs state, resumes execution
This is the quine — the machine outputting a copy of itself.
```
### Key: Replicate
```
Replicate: DNA → S'
Takes a DNA sequence (from EncodeSelf output) and reconstructs
the machine state. This is the inverse of Introspect:
1. Decode DNA to state description
2. Allocate FAMM bank
3. Populate cells from description
4. Reconstruct DAG from checkpoint chain
5. Resume execution from saved instruction pointer
The result is a functionally identical machine (possibly with
different physical memory addresses but same logical state).
```
## Self-Replication Protocol
```
Phase 1: INTROSPECT (read self)
machine.state → Introspect → DNA_self
(deterministic encoding of full state)
Phase 2: ENCODE (produce binary)
DNA_self + bootstrap_code → EncodeSelf → binary_file
(quine: binary contains both data and code to reconstruct)
Phase 3: VERIFY (Baker-analogue check)
|Λ_self| ≥ ε(state) OR Ω(state) > 0
If scar: record in FAMM, continue (graceful degradation)
If rigidity: proceed to replication
Phase 4: OUTPUT (write binary)
binary_file → disk/network
Receipt: {
receiptID: sha256(binary_file),
expression: "self-replication cycle",
finalState: Σ, -- symmetric (copy = original)
ticCount: state_size,
fuelUsed: encode_cost + verify_cost,
pathCost: None,
libraryRefs: ["AVM", "FAMM", "DNA", "QuineLib", "RRCLib"],
verified: True,
generation: n + 1
}
Phase 5: BOOT (cold start from binary)
binary_file → execute → Replicate → machine'
machine' is functionally identical to machine
Phase 6: VERIFY IDENTITY
machine'.Introspect == DNA_self (identity check)
If identical: replication successful
If different: mutation detected (could be intentional or error)
```
## The Quine Structure
```
binary = [bootstrap][compressed_DNA_self][checksum]
bootstrap:
- minimal AVM (enough to run Replicate)
- FAMM allocator
- DNA decoder
- 8KB of code
compressed_DNA_self:
- Lempel-Ziv or arithmetic coding of DNA sequence
- Contains: all FAMM cells, DAG nodes, scar field, IP
- Size: ~O(state complexity), typically 10-100KB
checksum:
- SHA-256 of [bootstrap][compressed_DNA_self]
- Verified on boot (integrity check)
```
## Gödel Boundary Handling
Self-replication hits the Gödel boundary when:
1. **Introspect on self**: reading own state while modifying it
- Solution: atomic snapshot (copy state before encoding)
2. **Quine paradox**: "this machine outputs a copy of itself"
- Is the copy identical? (yes, by deterministic encoding)
- Is the copy the same machine? (functionally yes, physically no)
- Gödel: can't prove complete identity from within
- Solution: external verifier (Receipt comparison)
3. **Infinite regress**: replicate → replicate → replicate...
- Solution: generation counter in Receipt
- Each generation gets a unique receiptID chain
4. **Mutation**: deliberate or accidental variation
- Mutation can be:
a) Error (scar recorded, heal attempted)
b) Intentional (controlled mutate instruction)
c) Environmental (different hardware → different timing)
- Solution: checksum + identity verify on boot
## Turing Completeness Proof Sketch
The weird machine is Turing complete because:
1. **AVM has conditional control flow**: Merge instruction + Halt
2. **AVM has unbounded memory**: FAMM bank can grow (append cells)
3. **AVM has arbitrary data**: Q16.16 values encode any rational
4. **Can simulate a universal TM**:
- Tape → FAMM cells (each cell = one tape position)
- Head → instruction pointer
- State → HachimojiState on stack
- Transition → δ (AVM transition function)
The additional instructions (Introspect, EncodeSelf, Replicate, Mutate, Heal, Boot) don't break Turing completeness — they're syntactic sugar over the base AVM.
## Determinism Guarantee
Critical for replication: same state → same DNA → same binary → same replica.
Sources of non-determinism and how we eliminate:
| Source | Fix |
|--------|-----|
| Memory addresses | Don't encode addresses — encode logical structure |
| Timing | Don't encode timing — encode state snapshot |
| Randomness | Fixed seeds only (seed in state) |
| FPU rounding | Q16.16 fixed-point (no float) |
| Hash ordering | Sort all hash-iterable structures before encode |
| OS differences | Pure computation (no OS calls in core) |
## SilverSight Receipt (Per Replication Cycle)
```json
{
"receiptID": "sha256(binary_output)",
"expression": "self-replication cycle gen_n",
"finalState": "Σ",
"ticCount": state_size_cells,
"fuelUsed": encode_cost + verify_cost + io_cost,
"pathCost": null,
"libraryRefs": ["AVM", "FAMM", "DNA", "QuineLib", "RRCLib"],
"verified": true,
"generation": n,
"parentID": "receipt_of_gen_{n-1}",
"scarHash": "sha256(scar_field_snapshot)",
"identityCheck": "machine.Introspect == replica.Introspect"
}
```
## The Gold Standard
The machine achieves self-replication when:
```
∀ machine: machine.output_binary() → execute → machine'
where machine'.Introspect() == machine.Introspect()
AND: receipt.verified == True
AND: receipt.identityCheck == True
AND: receipt.generation > 0
```
This is a **true quine at the system level**: the machine outputs a binary that, when executed, produces a functionally identical machine with the same self-description.
## Implementation Priority
| Component | Status | File |
|-----------|--------|------|
| AVM core | EXISTS | SilverSightCore.lean |
| FAMM memory | EXISTS | FAMM.lean (Research-Stack) |
| DNA codec | EXISTS | dna_codec.py |
| Introspect | NEW | quine.py (needs write) |
| EncodeSelf | NEW | quine.py |
| Replicate | NEW | quine.py |
| Mutate | NEW | quine.py |
| Heal | NEW | quine.py |
| Boot | NEW | quine.py |
| Integration | NEW | weird_machine.py |
## The Next Step
Write `quine.py` — the self-replication engine. This is the bridge between:
- `dna_codec.py` (encoding)
- `finsler_metric.py` / `qaoa_circuit.py` (computation)
- `SilverSightCore.lean` (formal spec)
- The FAMM memory model (Research-Stack)
It implements Introspect → EncodeSelf → Replicate → Verify as a Python module that plugs into the existing SilverSight library architecture.