# 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.