research/lab/py/band-return-times

0 directories and 2 files in research/lab/py/band-return-times.

band-return-times

  • The band automaton of a direction (z1, z2) with z1 + z2 = w and 3 | z1: states are the integers j in [-(z2-1)//2, (z1-1)//2], the moves are j -> (j + a)/3 over the increments a in {0, z1, -z2} whose quotient is integral, and the band is invariant.
  • Out-degree is 2 on j = 0 mod 3, 1 on j = z2 mod 3 and 0 on the third class, so the mean out-degree is 1 + (n0 - n2)/N for the counts of those two classes among the N band states, and never 1 as an identity.
  • N consecutive integers split the three classes mod 3 to within one, so |mean - 1| <= 1/N always and the mean is exactly 1 whenever n0 = n2, which 3 | N gives and does not exhaust: 3 | N is sufficient and not necessary.
  • The census the verb prints over w in {13, 40, 100, 101, 121, 257, 364, 1093}: 591 coprime directions, 465 of them exactly critical, 60 of those 465 with 3 not dividing N.
  • The two smallest witnesses, also printed by the verb: (z1, z2) = (3, 1) has states {0, 1}, degrees 2, 1 and mean 3/2, the smallest non-critical direction; (3, 2) has degrees 2, 0 and mean 1 at N = 2 with 3 not dividing N.
  • A walk leaves 0 by the forced increment z1 and a return is a walk back to 0; a return of length n spells a multiplier m with m z1 and m z2 binary in base 3 on disjoint supports, so m w is binary of length n.
  • The first return time d(z) is the base-3 length of the shortest binary lift m w, and for w = R_k = (3^k - 1)/2 the depth ceil(d(z) / k) is the block depth of the pincer.
  • At the horizon n = bk, for a block depth b, the slot profile of the column transfer is uniform, so the transfer is one fixed matrix in k per residue j and the return count L(k, bk) obeys a constant-coefficient linear recurrence in k whose dominant root is the block rate lam_b.
  • Every column sum of every block deviates from 2^b/3 by one of two values fixed by the parity of b, -1/3 or +2/3 at even b and -2/3 or +1/3 at odd b, so lam_b lies in 2^b/3 + [-1/3, 2/3] at even b and in 2^b/3 + [-2/3, 1/3] at odd b.
  • The lift half of the same pincer is the submask count N_K(m), the submasks of a binary K divisible by a divisor m of it; its solution set is closed under complement in K, under disjoint union and under nested difference, so it is always even and counts the distinct unions of pairwise disjoint irreducible submasks.
  • The decomposition into irreducibles is not unique, so N_K(m) <= #packings <= 2^(iota) for the irreducible count iota, the right equality holding exactly when the irreducibles are pairwise disjoint; a power-of-two count does not force disjointness and the two ladders differ.
  • A column transfer with a state set free of k is a linear representation of N as a series over the column word, so its state count is at least the Hankel rank; that rank reads 3, 7, 14, 31, 62, 126, 253 against the full 3, 7, 15, 31, 63, 127, 255 at word length 1..7 on each side, so no such transfer with fewer than 253 states exists at k <= 15 and its unboundedness past there is observed and not proved.
  • The reversed reading of that matrix is its transpose at equal Hankel side lengths p = q and is no second check; the irreducible count iota has the same full-rank Hankel, so the bounded object is not the computable one.
  • The headline is two-sided at every b, |3 lam_b / 2^b - 1| <= 2^(1 - b): the parity refines which edge is which, not the rate; the printed excess 3 lam_b - 2^b is positive at every b the verb reaches, so the upper edge is the live one.

WHAT IT COMPUTES

  • automaton: the state count, the edge count, the out-degree profile and the mean out-degree of the band automaton over the coprime directions of the given weights, with the band invariance and the identity mean = 1 + (n0 - n2) / N asserted, the count of exactly critical directions and of those among them with 3 not dividing N, and the two smallest witnesses (3, 1) and (3, 2).
  • returns: L(k, n), the number of primitive returns of the weight R_k inside horizon n, by a transfer matrix on the column carry; the per-block growth lam_b of L(k, bk); the excess rho over the free model 2^(n-1) / R_k; and the lengths at which no return exists.
  • hist: the first-return histogram of every coprime direction of weight R_k, its bulk against the multiplier model Sum_{max T = t} 2^k / m_T, the depth histogram and the survival of the deep tail, and the deepest return against sqrt(R_k).
  • critical: the deepest and the median first return over a ladder of weights prime to 3, against the scale sqrt(w) a critical walk on a band of w/2 states predicts, with the leave-one-out range of the d_max slope, the median exponent under cuts on the occupied count Z, the two-predictor fit on log w and log Z, and the least-squares diagnostics.
  • model: D(k, N) = Sum over the primitive lifts of length at most N of 2^L / m at lift length L, the equidistribution count of return pairs, summed by the same transfer matrix and bracketed by the length of the lift.
  • ladder: the fixed matrix at n = bk, its head lengths r0(j), the exact characteristic polynomial of L(k, bk) in k, the minimal polynomial of lam_b with its radical form where the degree allows, lam_b as a certified interval by exact bisection, the parity column-sum bracket that holds it, and max_j rho(B(b, j)) against lam_b.
  • lift: the depth-2 lift census, M_k = Sum_T N_K(m) by meet in the middle with the Hankel rank of the sequence itself, the irreducible supply Sum_T iota_T and the largest one, the share of T whose count is trivial, whose count is a power of two and whose irreducibles are pairwise disjoint, the residue classes m_T mod 9 of the ladder with the two-line argument that class 4 is empty, and the Hankel rank of N and of iota over the column word.
  • check: the transfer against a brute enumeration of binary multiples, the block-ladder identities, and the breadth-first return time against the shortest lift found by brute force.

HOW TO RUN

  • uv run python research/lab/py/band-return-times/returns.py check
  • uv run python research/lab/py/band-return-times/returns.py automaton --weights 13 40 100 101 121 257 364 1093
  • uv run python research/lab/py/band-return-times/returns.py returns --kmin 3 --bmax 9 --kbig 160
  • uv run python research/lab/py/band-return-times/returns.py hist --kmax 14
  • uv run python research/lab/py/band-return-times/returns.py critical --wmin 2000 --wmax 400000 --step 1.15
  • uv run python research/lab/py/band-return-times/returns.py model --kmin 8 --kmax 16 --bmax 8
  • uv run python research/lab/py/band-return-times/returns.py ladder --bmax 14
  • uv run python research/lab/py/band-return-times/returns.py lift --kmax 12 --kbig 17 --nmax 7
  • lift costs 2^(1.5k) on the M_k ladder and 2^(2k-1) on the irreducible census, 170 s at the defaults, 80 s of it the Hankel rank at word length 7.
  • hist costs w^1.5, 43 s at k = 14; ladder costs a second a step to b = 14 and a minute to b = 20; every other verb is under 30 s.

WITNESSES

  • coprime.md, THE WINDOW AT DIMENSION ONE: the lift half as a union count over irreducible submasks, and the return count of the critical band automaton, the block ladder at every depth, the block rate lam_b as an exact algebraic number, the return-time support and the depth reading of the deep tail.