parti-wave's picture
Update README.md
10465c7 verified
|
Raw
History Blame Contribute Delete
10 kB
---
language: en
license: mit
tags:
- physics
- scientific-discovery
- deterministic-computation
- logistic-map
- hardware-characterization
---
# TAV RGC World β€” Deterministic 49-Core Logistic Lattice
**A hardware-characterized, finite-precision logistic-map lattice (49 parallel Q1.31 iterators) on an Artix-7 FPGA**
This world definition provides a realistic computational substrate based on actual FPGA telemetry from the `logistic_bank` core on the Arty A7-100T. It implements a 49-core synchronous logistic-map lattice in **Q1.31** fixed-point arithmetic (32-bit recurrent state per core), with per-core `r` values spanning [3.5, 4.0] to tile the period-doubling route to chaos. The state is telemetered as its **top 24 bits** (`x_value[31:8]`); the low 8 bits are retained on-chip but not transmitted.
## What This World Represents
Unlike purely theoretical or software-simulated worlds, this definition is grounded in **measured hardware behavior** from four independent cold-start runs (N1, N2, N3, N4). The current reference run is **N4: 30 days, 0:00:00 of continuous capture, closed by a pre-scheduled termination on 2026-07-06** with an instrument-generated session certificate.
Key measured properties:
- **Cross-run bit-exact determinism.** Independent cold-start runs reproduce identical telemetered sequences (24-bit `x`, full-width `n`) over their full common prefix: N1 ≑ N2 ≑ N3 ≑ N4. This is the lattice's most-verified property.
- **16 cores** have periods short enough to be *exactly resolved* within the capture window and faithfully through the 24-bit telemetry.
- **33 cores** have periods that are only *lower bounds*, for two compounding reasons: (a) their true period in the 32-bit Q1.31 state space exceeds the observation window, and (b) the 24-bit export drops the low 8 state bits, so an apparent repeat in telemetry is not a confirmed period (distinct 32-bit states can share the same top 24 bits). The partition is therefore an **observation/telemetry-resolvability** property, not a structural feature of the dynamics. (See the core 04 case study below for this caveat demonstrated live.)
- Strict data integrity: only frames with `delta_n = 49` are accepted. The iteration counter `n` is telemetered at full 32-bit width, so the integrity accounting is exact and unaffected by the `x` truncation.
- **Zero observed single-event upsets** across the 30-day N4 run: no configuration or state upset surfaced anywhere in the Ξ”n or orbit data, on hobbyist-grade silicon at sea level.
## N4 Reference Run β€” Session Certificate (2026-06-06 β†’ 2026-07-06)
N4 was closed at exactly 30 days by a pre-scheduled SIGINT; the bridge's automatic session summary is reproduced here as the run's certificate:
| Metric | Value |
|---|---|
| Duration | 30 days, 0:00:00 |
| Logistic frames | 18,143,975 (0 malformed) |
| Total heartbeats | 18,218,909 (0 lost) |
| Cores observed | 49 / 49 |
| Iteration health | delta_n mean = 49.0, min = 49, max = 49 |
| Average frame rate | 7.03 Hz |
| Stability score | 81.2 / 100 |
The delta_n line is the whole integrity verdict in one row: across a full month of continuous capture, the per-core iteration delta never once deviated from exactly 49.
## Witnessed 2^24 Counter Crossing
The N4 window contained the iteration counter's 2^24 carry (n = 16,777,216, reached at day ~27.7). The event was predicted in advance β€” including which core would export the exact carry row (core 08, since 2^24 mod 49 = 8) β€” and certified from the captured data:
- Zero delta_n β‰  49 rows in the 10,001 frames straddling the carry (Β±5,000);
- 49/49 cores show clean straddles;
- The exact carry row was logged by core 08 as predicted (n = 0x01000000, x_raw24 = 0x49DE3E);
- All telemetry-periodic cores' orbit sets are bit-identical before and after the crossing.
The carry is arithmetic, not an event: the counter is an odometer, and the lattice state marches through it unchanged.
## Case Study: Core 04 and the 24-bit Telemetry Caveat
Core 04 (r = 3.5416Μ„, the lattice's closest core to the 4β†’8 bifurcation at r β‰ˆ 3.5441) demonstrates the resolved/projected caveat in live data. Three views of one orbit:
- A 6-decimal normalized view of the telemetry shows **4** distinct values;
- The raw 24-bit export shows **6** distinct codes (stable from frame ~200k to end of run, with no step change β€” consistent with zero upsets);
- The true 32-bit on-chip cycle, computed by a bit-exact software twin of the datapath, is **period-8**: two of the six 24-bit codes each conceal an LSB-adjacent pair of 32-bit states.
One orbit, three resolutions. The quantized hardware expresses period-8 structure at an r value ~0.0024 *before* the continuum bifurcation point β€” real period-doubling microstructure in fixed-point silicon. **Standing rule derived from this case: exact-period claims are made on `x_raw24`, never on the normalized decimal view.**
## Uncoupledness, Verified Three Ways
Each core's update consumes only its own state and its own `r` word. This is verified by (a) the RTL source (no neighbor term exists in the update), (b) a solo-core software twin that reproduces the telemetered sequences bit-exactly β€” impossible if any inter-core coupling existed, since a single injected LSB would diverge chaotic cores within ~100 frames β€” and (c) the month-long coexistence of bit-exact period-locked cores adjacent to chaotic cores, which no nonzero coupling permits. The lattice is a synchronous, **uncoupled** bank of 49 independent maps; sharing a clock is not sharing state.
## Reproducibility β€” scope of the claim
Reproducibility is asserted for the **telemetered `x` observable (top 24 bits of the 32-bit Q1.31 state)** and for the full-width `n` counter. The recurrent state is 32 bits; the export transmits the high 24 of those bits and drops the low 8 (noise-dominated). Identical cold-start runs therefore reproduce the same *telemetered* `x` sequences bit-for-bit, but this is reproducibility of the 24-bit observable, not a claim about the 8 untransmitted state bits. This is the strongest statement the telemetry can support, and it is the one made here.
## Data Integrity and the Capture-Onset Transient
Frame integrity is enforced by a single rule: only frames carrying a global iteration delta of exactly `delta_n = 49` are accepted.
**Steady-state frame corruption is zero.** All rejected frames occur during the *capture-onset framer-lock transient* β€” the interval before byte/frame alignment is acquired on the free-running UART stream β€” and they never recur once lock is established. The FPGA emits frames continuously and does not wait for the host; when the host attaches, it drops into a live stream with pre-existing bytes in the transmit FIFO and OS serial buffer. Until two consecutive sequence-numbered frames produce a valid `delta_n = 49`, each misaligned read fails the integrity test and is rejected. Once lock is acquired it is retained for the remainder of the capture.
Empirically the transient is a **fixed-depth flush** in N1–N3: exactly **49** frames rejected in every run, independent of capture length β€” one per core, consistent with a single stale 49-core readout sweep being cleared before lock. N4's hardened bridge reported **0 malformed frames over the full 30-day capture** at the instrument layer; the loader-level onset accounting for N4 (whether the exactly-49 pattern recurs under the hardened framer) is being confirmed against the final CSV in the post-close audit and this section will be updated with the result.
These onset frames are excised by the integrity rule **at the loader**, not by modifying the instrument during a live capture. A rejected frame appearing *after* lock would be a genuine anomaly; none has been observed across any run.
## Run Provenance
- **N1** β€” 48 hours; planned endpoint. First determinism anchor.
- **N2** β€” 4,000,000 frames; planned endpoint (frame-count watcher). Original reference run, superseded by N4.
- **N3** β€” 8,000,000-frame target; **terminated early by a host-side port conflict** (a second consumer attached to the UART during bridge development). Its captured prefix remains bit-identical to the other runs; its ending is documented here as provenance, and the one-owner port rule adopted afterward is why N4 completed.
- **N4** β€” 30 days / 18,143,975 frames; pre-scheduled termination with automatic certificate. **Current reference run.**
## Current Status
- **N4 is the reference run** (superseding N2). The final N4 CSV (1.3 GB) is the canonical analysis artifact.
- Cross-run determinism is verified bit-for-bit across all four runs over their common prefixes.
- The 16/33 resolved/projected partition is reproducible across runs; N4's longer window is being re-audited post-close, and any promotions from "projected" to "resolved" will update the world definition. The partition remains an observation limit, not a structural bound.
- A follow-on run (N5) is planned: a single-parameter retune of one core's `r` word, with a pre-registered orbit prediction to be graded against capture.
Full methods and analysis are documented in the accompanying `tav_rgc_world.yaml` and supporting scripts.
## Files Included
- `tav_rgc_world.yaml` β€” Core world definition (v1.1)
- `tav_rgc_world.py` β€” Python loader
- `example_load_run.py` β€” Example loader with integrity filtering
- `compare_all_runs.py` β€” Comparison tool across runs
- `rgc_integrity.py` β€” Capture-onset lock detection and frame partitioning
- `rgc_period_census_v1.py` β€” Per-core period census (note: census basis is the normalized view; exact-period verdicts require `x_raw24` β€” see core 04 case study)
- `n4_crossing_certificate.py` β€” 2^24 carry-crossing certificate generator
- `README.md` β€” Usage documentation
## Quick Start
```python
from tav_rgc_world import RGCWorld
world = RGCWorld("tav_rgc_world.yaml")
print(world.summary())
resolved = world.get_resolved_cores()
projected = world.get_projected_cores()
```