Log fleet_k_q48/fleet_conserved; K holds exactly, 775/775 ticks (FABRIC-3.md §XVIII)
doe_log.c's per-heartbeat-tick CSV gains two columns: fleet_k_q48 (vm_physics_fleet_heat_sum() over ALL live VMs -- the genuine fleet-wide conservation invariant K, not reconstructable from the 3 named-Tripod- member heat columns already logged, which omit every identity VM's own heat) and fleet_conserved (vm_physics_conserved() as 0/1). Requested explicitly after the first heartbeat-telemetry analysis pass (analysis-20260912/) omitted K entirely. Kernel rebuilt on all three architectures, full 3x9x3 campaign rerun (results-20260912-with-k/). K = 1.0000000000 (Q48.16 raw 65536) on every one of 775 heartbeat-tick observations, sd(K) = 0, 100% fleet_conserved, across amd64/aarch64/riscv64, nine identities, three replicates -- zero deviation. Also a free regression check on both recent Stadium fixes (§XVI/§XVII): neither disturbed the reservoir-transfer accounting K depends on. Found and fixed a tooling wrinkle along the way: fleet_conserved, being the CSV row's very last field with nothing after it to bound a regex match, can have a resumed trial digit merge into it with zero separator on the wire -- combine.py now derives it from fleet_k_q48 directly (same epsilon vm_physics_conserved() uses) instead of trusting the raw field. fleet_k_q48 itself is unaffected either way. Full analysis, discussion, and light/dark SVG->PDF figures written up as a proper LaTeX report (report-20260912/report/std79_doe_report.pdf), following experiments/bare_metal/analysis/report/bare_metal_doe_report.tex's established style -- supersedes analysis-20260912/'s markdown-only first pass as the primary deliverable for this dataset (kept, not discarded). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EXieurDfDSsDFdnSyusuWo
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
6573a6d1d5
commit
66ba21adb4
+36
@@ -2656,3 +2656,39 @@ times in each log. **81/81 trials correct, 0 mismatches** -- both known Stadium
|
||||
O(ncells) scan and this section's donor floor) are now closed, verified together on one clean
|
||||
campaign rerun.
|
||||
|
||||
## XVIII. The fleet conservation invariant K, continuously verified (2026-09-12)
|
||||
|
||||
Following §XVI/§XVII's fixes and the `HB-ON`/`HB-OFF`-instrumented heartbeat/physics telemetry
|
||||
campaign (`experiments/std79-doe/results-20260912-with-heartbeat-csv/`,
|
||||
`experiments/std79-doe/analysis-20260912/`), a further request asked specifically for the fleet
|
||||
conservation invariant `K` -- `vm_physics_fleet_heat_sum()` over ALL live VMs, which the
|
||||
Stadium/physics runtime's reservoir-transfer accounting is designed to hold exactly at
|
||||
`Q48_ONE`. The existing per-tick CSV logged only the three named Tripod members' (Hera, Hermes,
|
||||
Artemis) *individual* heat, not the fleet-wide sum -- insufficient to reconstruct `K`, since it
|
||||
omits every identity VM's own heat contribution.
|
||||
|
||||
**Fix (feature addition, not a defect):** `doe_log.c`'s per-tick CSV gained two columns,
|
||||
`fleet_k_q48` (`vm_physics_fleet_heat_sum()`) and `fleet_conserved`
|
||||
(`vm_physics_conserved()` as 0/1), growing the row from 18 to 20 columns. Kernel rebuilt and
|
||||
the full 3x9x3 campaign rerun on all three architectures
|
||||
(`experiments/std79-doe/results-20260912-with-k/`).
|
||||
|
||||
**Result: K = 1.0000000000 (raw Q48.16 value 65536) on every one of 775 heartbeat-tick
|
||||
observations, `sd(K) = 0`, 100% `fleet_conserved`, across all three architectures, nine
|
||||
identities, and three replicates -- zero deviation.** Full analysis, discussion, and figures in
|
||||
`experiments/std79-doe/report-20260912/report/std79_doe_report.pdf`, a LaTeX report following
|
||||
`experiments/bare_metal/analysis/report/bare_metal_doe_report.tex`'s established style
|
||||
(superseding `analysis-20260912/`'s markdown-only first pass, which never captured K at all).
|
||||
This continuous, per-tick verification -- not just a boot-time self-test -- is also, incidentally,
|
||||
a live regression check confirming neither §XVI's nor §XVII's Stadium fix introduced any heat
|
||||
leak or double-count.
|
||||
|
||||
One correlation-tooling wrinkle found and fixed along the way: `fleet_conserved`, being
|
||||
`doe_log_tick_row()`'s very last printed CSV field with nothing after it in the row to bound a
|
||||
regex match against, can have a resumed trial digit merge into it with zero separator on the
|
||||
wire (same interleaving effect as §XVII's write-up, just landing on a different field this time)
|
||||
-- `combine.py` now derives `fleet_conserved` from `fleet_k_q48` directly (same epsilon
|
||||
`vm_physics_conserved()` uses) rather than trusting the raw field. `fleet_k_q48` itself is
|
||||
unaffected either way, since the K result does not depend on trial attribution being correct at
|
||||
all.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user