research/lab/py/mobius-region

0 directories and 2 files in research/lab/py/mobius-region.

mobius-region

  • The three exponents a digit design hands the pair route, and the region of (alpha, alpha_1, beta) in which that route's inequalities all hold.
  • The object is F_x(t) = x^(-alpha) abs(Sum_(n in D_level) e(n t)) at x = base^level, the transform of the length-level strings over a digit set F normalised by its own mass; alpha = log_base fill with fill = abs(F), alpha_1 is the exponent of sup_(shift) Sum_(a < x) F_x(shift + a/x), m_t the exponent of Sum_(a < x) F_x(a/x)^t, and beta = inf_(1 <= t < 2) m_t/(2 - t) the exceptional-set threshold.
  • The eight inequalities are beta <= 2/5 together with the seven the verbs carry by name: L1 is 2 alpha_1 < alpha, C1 is beta <= 1/4, C2 is alpha_1 + (5/2) beta <= 1, L2 is (2 - alpha) 2 beta < 1 - alpha_1, L3 is 2 beta (alpha_1 (3 - u) + u - 1) < u alpha/2 for some u in (0, min(1, 2 alpha_1/alpha)], L4 is 5 beta < 1 + alpha/2, and L5 is 2 beta < (1 - alpha_1)(1 - alpha_1 + alpha/2); the first is implied by C1, so only the seven are ever checked.
  • params base digits [nd] [m]: the three exponents of one design, digits written in base 36.
  • criterion: every design of the census against the seven inequalities, with the verdict decided at the pessimistic corner for a pass and at the optimistic one for a fail.
  • region: the boundary in the (alpha_1, beta) plane at fixed alpha, with the cap that binds at every station.
  • boundary: which of the seven can bind at all, the two corner identities, the sweep that finds no counterexample, and the single-window branch read with the step beta <= m_1 <= alpha_1.
  • threshold [target]: the exceptional-set threshold from BELOW, by a chain of cells in t closed above by the Parseval value, refined against a target that defaults to 1/4.
  • check: the Parseval anchor, the two floors, both window bounds against an exact grid sum, and the recompute at base 21.

WHAT IT COMPUTES

  • alpha by integer comparison of fill^b against base^a at fixed denominator b = 10^5, never by a float logarithm, printed as a bracket of width 10^(-5).
  • The one-digit factor from the difference multiset, fill^2 abs(hat F(t))^2 = Sum_(d in F - F) mult(d) cos(2 pi d t), one cosine per distinct difference and no complex exponential.
  • The window transfer matrix. A window is n_d digits in base base, its cell is [w/base^(n_d), (w + 1)/base^(n_d)), and the matrix carries a window to its base successors with weight the supremum of the one-digit factor over the cell, bounded above by a sub-scan of m points plus Lip h/2 with Lip = 2 pi (Sum_(f in F) f)/fill and h = 1/(m base^(n_d)). Its Perron root lambda gives alpha_1 <= log_base lambda, and the same scan taking the infimum over the cell gives alpha_1 >= log_base lambda_inf.
  • The root is bracketed by Collatz-Wielandt on both sides: any y > 0 gives min_v (M y)(v)/y(v) <= rho(M) <= max_v (M y)(v)/y(v), the test vector being the float power iterate. A cell whose infimum falls to zero can empty a row, and such a design prints no lower bound rather than a false one.
  • The moments run the same matrix with the weight raised to t, so one scan serves every order; beta from above is min_t m_t/(2 - t) over a finite grid of t, which is an upper bound because each sampled t is admissible.
  • beta from below needs every t, and is the direction the base-10 verdict rests on; it gets it from two monotonicities: F_x <= 1 pointwise makes m_t non-increasing in t, so on a cell [t_0, t_1] every t has m_t/(2 - t) >= m_(t_1)/(2 - t_0), and m_2 = 1 - alpha exactly by Parseval on the grid, so above a cut the Parseval value alone decides. An adaptive bisection refines only the cells that do not clear the bar.
  • The two floors, both from the same Parseval identity Sum_(a mod base^level) abs(hat F_level(a/base^level))^2 = base^level fill^level: alpha_1 >= 1 - alpha and beta >= 1 - alpha at every design.
  • The caps on beta are exact rational functions of (alpha, alpha_1) evaluated in Fraction, so the region and its corner identities carry no float at all.

THE ROUNDING

  • alpha_1 is a supremum over shifts: an upper bound needs the whole supremum and comes from the supremum window at a printed depth, a lower bound needs one shift and comes from the infimum window or from the floor. beta is an infimum over orders: an upper bound needs one order, a lower bound needs every order and comes from the cell chain. The two directions are exchanged.
  • Lower bounds truncate down, upper bounds round up, and no digit prints past what the bound establishes. Every cap falls in alpha_1 and rises in alpha, so a design clears the region as soon as it clears at the corner with alpha low and alpha_1, beta high, and fails as soon as it fails at the opposite corner; neither corner deciding prints open.

RUN

  • uv run python research/lab/py/mobius-region/mobius_region.py check in 27 seconds.
  • uv run python research/lab/py/mobius-region/mobius_region.py boundary and region in under a second each.
  • uv run python research/lab/py/mobius-region/mobius_region.py threshold in 41 seconds for the ten base-10 columns and threshold 0.2626 in 80 seconds, threshold base digits [target] for one design.
  • uv run python research/lab/py/mobius-region/mobius_region.py criterion in 155 seconds for the 49 designs of the census.
  • uv run python research/lab/py/mobius-region/mobius_region.py params 21 123456789abcdefghijk in 12 seconds.
  • Depths: n_d = 9 at base 3, 7 at base 4, 6 at base 5, 5 at base 10 and at base 21, sub-scan m = 8 throughout; the base-21 matrix carries 21^4 states and 21^5 weights, under 100 MB.
  • Prints only, writes nothing; check and boundary raise if any row is off.

WITNESSES

  • The region: for alpha in (1/2, 1) the eight inequalities collapse to alpha_1 < alpha/2 and beta <= min(1/4, (2/5)(1 - alpha_1)). The four caps that never bind reach exactly 1/4 at the wall alpha_1 = alpha/2 in the case of L2 and L3, (2 - alpha)/4 in the case of L5 and (1 + alpha/2)/5 in the case of L4; the sweep of alpha in [67/100, 999/1000] by 1/1000 and alpha_1 in (0, alpha/2] by alpha/400 finds 0 of 66000 cells, so 0 of 264000 cap tests, where any of the four falls below 1/4, and the wall equalities hold at each of 330 rational alpha for both caps, corroboration of an identity rather than proof of it.
  • The two floors force alpha >= 3/4, that is fill >= base^(3/4): the threshold beta obeys the same Parseval floor 1 - alpha as the l^1 exponent, and beta <= 1/4 then asks 1 - alpha <= 1/4. At alpha = 3/4 the threshold is pinned to beta = 1/4 and the grid l^1 exponent to 1 - alpha, the floor's own equality case. Dropping the 1/4 for the single-window branch alpha_1 <= 1 - (13/4) beta narrows the route rather than widening it, and the step that does it is beta <= m_1 <= alpha_1, t = 1 in the infimum and one shift of the supremum; boundary prints alpha_1 <= 1 - (13/4) beta against beta <= alpha_1 asks beta <= 4/17 = 0.2352942, under the 1/4 it replaces and with the Parseval floor beta >= 1 - alpha that asks alpha >= 13/17 = 0.764705, over the 3/4 the window cap asks: the branch narrows the route, and without that step alpha = 0.9, alpha_1 = 0.154, beta = 0.26 > 1/4 passes both floors, all five lattice conditions with 2 alpha_1 < alpha among them, the greedy cap and the branch, each with slack. The weaker reading fill > sqrt(base), which comes from alpha_1 < 1/2 alone, stays true throughout.
  • The census over the 38 proper digit sets of base 3, 4, 5, the ten base-10 one-missing-digit columns and base 21 missing 0: 1 design clears, 47 are refuted, 1 is open, the open cell being base 5, F = {0,1,3,4}, where the transform vanishes inside a window cell and the infimum matrix loses a row.
  • Base 21 missing 0: alpha in [0.9839700, 0.9839800], alpha_1 in [0.2499715, 0.2499822] at five window digits and sub-scan 8, clearing 1/4 by 1.78 x 10^(-5), and beta <= alpha_1 at t = 1. This is an independent implementation of the same window method against the five-digit [0.2499715, 0.2499821] of lab/py/digit-transform-norms, agreeing on the lower bound to all seven printed digits and differing by one unit in the last on the upper; two machines at one depth and one sub-scan witness transcription, and the upper-bound gap is the only independent information in the comparison.
  • Base 10 missing 5: alpha_1 in [0.3505101, 0.3506471], containing the certified [0.3505775, 0.3505797] of lab/py/digit-transform-norms and below 27/77 = 0.3506494; m_t <= 0.1362891 at t = 235/154 against the published 59/433 = 0.1362587; beta <= 0.2875140 against 23/80 = 0.2875 and the sharp 9086/31609 = 0.2874498.
  • The base-10 threshold from below, by chains of 25 to 53 cells: beta > 1/4 at all ten excluded digits, so no admissible threshold clears the window condition at base 10 at any digit.
  • The two extreme digits are strictly the cheapest columns of base 10, and the refuting certificates do not show it: beta in [0.2510933, 0.2625620] at the digit 9 and [0.2515026, 0.2875159] at the digit 4 OVERLAP. At the target 0.2626 the same chain certifies beta >= 0.2632014 at each of the eight non-extreme digits, up to 0.2645208 at the digit 7, above both extreme upper bounds, while the digits 0 and 9 come back undecided as they must; that is the ordering. The miss is then at most 0.0125620 at the cheapest column and at least 0.0139557 at the digit 4, and the factor 2.99 between the two printed excesses over 1/4, 0.0375159 against 0.0125620, is a ratio of upper bounds and not of misses. The l^1 exponents read alpha_1 <= 0.3099237 and alpha_1 <= 0.3506480 at the same two digits.
  • The checks: the Parseval anchor Sum_a F_x^2 = (base/fill)^level reproduced exactly at six cells; the exact grid sum between the two window path sums at base 3, 5, 10, the infimum path under it at ratios 0.999524, 0.998522, 0.999353 and the supremum path over it at 0.999524, 0.998523, 0.999353; both floors met at four designs.