README.md
5.2 kB · markdown
base3-transient-exhaustion
- Settles
level*(D), the last level withV(level) < 0, at every even carry parameterD = 6..120in base 3, middle-digit design, with the exhaustion proved rather than assumed. V(level) = 3 m0(level) - b(level) = v^T u_levelwithm0the census mass on carries divisible by 3,bthe whole census mass,v_c = 3[3|c] - 1andu_level = M^level e_0the carry census at that level.level*grows like(ln R / 4) D^2, so a census carried only to a windowtop = 4D + ctruncates onceDis past about 70 and returns the largest odd level inside the window instead oflevel*.
THE SUFFICIENCY INEQUALITY
M >= 0entrywise (the digit polynomial has nonnegative coefficients) andu_m = M^m e_0 >= 0for everym >= 0.- So if one integer
thasr_t := (M^T)^t v >= 0entrywise, thenV(level) = r_t^T u_(level-t) >= 0for everylevel >= t. - Hence
level*(D) = max{level <= t : V(level) < 0}with no window assumption: the sweep stops at the firsttwithr_t >= 0and the answer cannot be truncated. - The sweep runs on the folded core
Nof size(D-1)//2 + 1, valid because the digit polynomial is palindromic, which the run asserts at everyDalong with carry-window closure. V(level) = r_level[0]sinceu_0 = e_0, so one backward sweep yields the whole sign sequence and the certificate together.
THE SAME CERTIFICATE THE LANE ALREADY USES
- Column sums satisfy
fill - 3 colsum(c) = (D-1) v_cexactly,fill = 2^(D-1)(D+2); this isprop:massofslice-sign-even-half, proved by root-of-unity filtering, and holds at everyD. --selftestbites the identity at evenD = 4..60as a transcription check on this study's matrix; the theorem, not the check, is what carries the reading toD = 120.- Applying
(M^T)^Kgivesfill beta_K - 3 beta_(K+1) = (D-1) r_Kwithbeta_K = (M^T)^K 1. - So the Collatz-Wielandt test
3 beta_(K+1) < fill beta_Kentrywise isr_K > 0entrywise: the exhaustion certificate and the even-half certificate are one object. - Every row of the run has
r_t > 0strictly, so the stopping leveltis exactlyK_min(D).
RESULTS
- 58 of 58 rows:
level*(D)equalslevel_0(D), the greatest odd integer belowK*(D), at every evenD = 6..120. No misses, no false rows. K_min = level* + 1on 36 rows andlevel* + 2on 22; the+2rows areD = 14, 22, 32, 38, 40, 48, 52, 54, 58, 70, 72, 76, 84, 92, 96, 98, 100, 106, 112, 114, 116, 118.- The split and the table below are regenerated by the run and not stored here;
--out <path>writes the rows as JSON outside the tree. K*(D)is evaluated at 60 decimal digits over levels2..399, and every row assertsK*misses the nearest integer by more than1e-20; the least observed distance is0.017138atD = 38.D : level* / K_min, the whole certified table.
6: 1/ 2 8: 3/ 4 10: 5/ 6 12: 7/ 8 14: 9/ 11 16: 13/ 14
18: 17/ 18 20: 21/ 22 22: 25/ 27 24: 31/ 32 26: 37/ 38 28: 43/ 44
30: 49/ 50 32: 55/ 57 34: 63/ 64 36: 71/ 72 38: 79/ 81 40: 87/ 89
42: 97/ 98 44: 107/ 108 46: 117/ 118 48: 127/ 129 50: 139/ 140 52: 149/ 151
54: 161/ 163 56: 175/ 176 58: 187/ 189 60: 201/ 202 62: 215/ 216 64: 229/ 230
66: 243/ 244 68: 259/ 260 70: 273/ 275 72: 289/ 291 74: 307/ 308 76: 323/ 325
78: 341/ 342 80: 359/ 360 82: 377/ 378 84: 395/ 397 86: 415/ 416 88: 435/ 436
90: 455/ 456 92: 475/ 477 94: 497/ 498 96: 517/ 519 98: 539/ 541 100: 561/ 563
102: 585/ 586 104: 609/ 610 106: 631/ 633 108: 657/ 658 110: 681/ 682 112: 705/ 707
114: 731/ 733 116: 757/ 759 118: 783/ 785 120: 811/ 812
CONTROLS
--selftestrebuildsV(level)from the unfolded censusu_level = M^level e_0, a separate iteration on all ofS, and matches the folded sweep exactly at evenD = 4..36for everylevel <= 4D + 8.- It also runs the unfolded row sweep
r_k = (M^T)^k von all ofSand assertsr_ksymmetric andrhat_k[c] = r_k[c] (1 if c = 0 else 2)entrywise over the same domain, so the whole vector decidingt, not only itsc = 0entry, is cross-checked. - The bundled
level*rows at evenD = 6..36and theK_mincolumn both agree withcheck_transientin the lane'sscripts/verify.py. - The three fresh towers
level* = 79, 97, 107atD = 38, 42, 44reproduce. - The four spot depths
K_min = 8, 50, 140, 291atD = 12, 30, 50, 72reproduce. - All arithmetic on the census side is exact integer; the only floating value is
K*(D), at 60 digits, guarded by the integer-distance assertion.
COST
- Whole sweep
D = 6..120with--selftest: 213 s of sweep, 41 MB peak resident printed by the run, one core. - Deepest row
D = 120: 28 s,t = 812sweep levels on a folded core of 60 states. - Growth is steep, near
D^8: 0.02 s atD = 44, 0.8 s atD = 74, 7.3 s atD = 100, 28 s atD = 120.
RUN
uv run python research/lab/py/base3-transient-exhaustion/transient.py --selftest --lo 6 --hi 120
WITNESSES
- the claims line (was
DISCOVERIES.md:215) -level* = level_0on 58 of 58 rows at evenD = 6..120, the towers atD = 38, 42, 44,level* = 811atD = 120, and theK_minsplit 36/22.