Research-Stack/docs/WEIRD_MACHINE_SPEC.md
Allaun Silverfox fa9c821437 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)
2026-06-23 01:05:57 -05:00

9.1 KiB
Raw Permalink Blame History

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)

{
  "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.