FIBONACCI RING COSMOLOGICAL OBSERVATORY v1.0.0
================================================

FILES
-----
fibonacci_ring_observatory.py   Self-contained Python 3.13 implementation.

REQUIREMENTS
------------
Python 3.10+ (tested here with Python 3.13.5). Standard library only.
No pip installs required.

RUN
---
Windows:
  py -3.13 fibonacci_ring_observatory.py --steps 5 --mutations

Linux/macOS:
  python3 fibonacci_ring_observatory.py --steps 5 --mutations

Optional:
  --steps N                 Number of Fibonacci ring transitions.
  --mutations               Run shadow-only mutation tests.
  --trials-per-family N     Repetitions per mutation family.
  --log-dir PATH            Output directory.
  --max-simplices N         Safety cap on subdivision output.
  --radius FLOAT            Strand radius (default 1.0).
  --axial-scale FLOAT       Strand axial scale L (default 1.0).

IMPORTANT MATHEMATICAL/IMPLEMENTATION NOTES
-------------------------------------------
1. The supplied pseudocode does not define COMPLETE_SIMPLEX, FIB_INDEX, R,
   or L. This implementation uses:
     - FIB_INDEX(F_k,F_{k+1}) = k, recovered by reversing the pair recurrence.
     - COMPLETE_SIMPLEX(V) = the abstract simplex on V vertices, including
       all nonempty faces.
     - R = 1.0 and L = 1.0 by default; both are command-line configurable.
2. Ω is computed by fixed-point iteration x <- 1 + 1/x, not stored as a
   decimal literal. Decimal precision is 80 digits.
3. P = A*Ω + (B-A), E = 1/P. K is derived from (A,B); no octave or recursion
   depth register exists in the primary ring.
4. Homology is computed over F_2. This is an explicit coefficient choice.
5. The initial four states create complete simplices with 1, 2, 3, and 4
   vertices. At K=4, the tetrahedron is barycentrically subdivided.
6. Barycentric subdivision of a 3-dimensional complex grows rapidly: each
   tetrahedron produces 24 tetrahedra. Do not request large --steps values
   without increasing resources and reviewing the growth cap. The default
   five transitions include exactly one subdivision.
7. Mutations are applied only to deep-copied shadow evidence. The primary
   FibonacciRing is checked before and after the campaign.
8. The hash chain detects later changes to the ledger, but cannot prove that
   the original observation was truthful. Historical replay and independent
   checks are separate evidence.
9. This is a reference implementation of the supplied pseudocode, not a
   drop-in adapter for an unavailable original source-code implementation.
   The supplied material was pseudocode, so COMPLETE_SIMPLEX, topology
   representation, and geometric scale had to be made explicit here.

OUTPUTS
-------
<log-dir>/baseline.json
<log-dir>/observations.jsonl
<log-dir>/tomography.jsonl
<log-dir>/mutation_results.jsonl   (when --mutations is used)
<log-dir>/final_report.json

FIRST RUN RECOMMENDATION
------------------------
Run --steps 5 --mutations first. This executes K=0 through K=4, establishes
an initial tetrahedron, performs one barycentric subdivision, records the
observations, and tests the shadow mutation families without touching the
primary topology or trace.
