The order wall

Sign computed from digits is finite-state and not finite-window — what the wall is made of, counted exactly.

A numeration reads a value through a window — its leading digits, to some precision, a cell of the window being the set of values one reading cannot tell apart — and reads an operation at lookahead c when the output's window at precision t is a function of the input's at precision t + c (The dual pole, where the reading criterion lives). The digit set decides what a window can read. Digits {−a..a} in radix b with 2a + 1 = b are balanced — one representation per value, non-redundant — and with 2a + 1 > b they are redundant, a value having many spellings. Reading through a redundant set is the redundant purchase: it makes every rational slope readable at bounded delay, and addition local under a condition on the set's reach (Redundant arithmetic), and it pays with the archimedean data the window still had — comparison blurs, and sign, folded into the digits instead of stored as its own coordinate, is non-local at every lookahead on either side of the purchase (the exchange of crown and blind spot). That non-locality is the wall; this page is what the wall is made of. Sign is finite-state, its minimal machine is counted exactly for every finite digit set, and the algebra its digits generate is closed in the same terms.

The order wall's shape rule

Sign being non-local at every lookahead on either side of the purchase is the order wall, and that states what the wall forbids rather than what it is made of. Sign factors. Read a width-n numeral most-significant-first, running sbs + d on the digits d: once |s| ≥ a/(b − 1) no continuation can outweigh what is already accumulated, and the run clamps to one of two absorbing verdicts. Call a — how far the digit set reaches on one side of zero — that side's reach, and a/(b − 1) the normalized reach: how many radix steps of headroom the side buys. The minimal number of states is 2⌈a/(b − 1)⌉ + 1, and the rounding is the ceiling — the reach ceiling below. A tail of m digits takes every value in its whole range — because 2a + 1 ≥ b, the digit set spans a full residue system and the tail bridges consecutive multiples of b — so a live state is distinguishable from an absorbing one exactly when some tail drives it to zero — which happens iff its value is strictly below the normalized reach. The two states sitting at it, which exist only where b − 1 divides a, are never driven to zero and merge away.

A machine clamped at the floor instead holds 2⌊a/(b − 1)⌋ + 3 states — 3 to 9 across the systems run — and reproduces brute-force sign exactly while carrying a surplus pair wherever that divisibility holds: a surplus state costs correctness nothing, so agreement with brute force cannot detect one, and the floor was where a machine clamped rather than a fact about sign. Over a signed asymmetric set {−a..a+}, both reaches at least 1, the count is ⌈a/(b − 1)⌉ + ⌈a+/(b − 1)⌉ + 1, and the two ceilings attach to the opposite sides from the obvious reading: a positive prefix can be overturned only by a negative tail, so it stays live while it is below a/(b − 1). Symmetric sets cannot see that crossing, both sides being equal there. Drop one reach to 0 and the numeration is unsigned: no value is ever negative, every positive state collapses together, and the machine has two states whatever the other reach is — a degenerate regime rather than a case of the formula.

Neither count is the digit set's. Let D be any finite set of integers with a negative and a positive member, its reaches a = −min D and a+ = max D. A tail's contribution to the value is a point of the attractor — the closed set of tail values Σ tibi, the fixed set of the maps x ↦ (x + d)/b over d in D — whose two extremes the all-extreme tails supply, so the thresholds are the extreme digits' alone whatever the interior, and the live states are integers of the open crossed interval (−a+/(b − 1), a/(b − 1)). Two things then vary. An integer is reached when some prefix has that value, a cycle question on the backward map n ↦ (nd)/b that a complete residue system does not settle: at radix 2 with {−1, 2, 3} the integer −2 is its own backward image under the only digit of its residue and is never reached, 4 states against the contiguous 5. And two reached neighbours v < w are one state iff the reflected interval (−w, −v) misses the attractor, the finite tail values being dense in it — so the classes are runs of consecutive reached integers, broken exactly at a gap of the attractor of length at least 1. The minimal count, for every such D, is 2 + (reached integers of the crossed interval) − (consecutive reached pairs across a gap of the attractor). With Δ the largest gap between consecutive digits and L = (a + a+)/(b − 1) the length of the hull — the interval between the attractor's two extremes — Δ ≤ L makes the attractor an interval and nothing merges — for contiguous sets that is the covering condition — and a merge needs Δ − Lb, so none exists at radix 2; the least positive reach that merges in the sweep is 7, at radix 3 with {−2, −1, 7}, where −2 and −1 are one state and four states stand where the contiguous count says 6. The merge condition has an exact form, read at one level: with K the least exponent with bK > L — the length at which a tail's undecided span first falls under a unit — and c, c+ the two ceilings ⌈a/(b − 1)⌉, ⌈a+/(b − 1)⌉ of the contiguous count, consecutive reached v < w are one state iff no digit string of length KK digits u1uK of D, read as the integer Σ ujbKj — has a value in [bK(−w) − c+ + 1, bK(−v) + c − 1]: a criterion proved both ways, the attractor's level-K cover having pieces shorter than 1 and so meeting an interval of length at least 1 exactly where the attractor does, and agreeing with the minimizer at all 9,840 three- and four-digit systems of the second sweep. That is where the loose condition's order of magnitude goes: at level 1 that interval is a hole in D of length b + c+ + c − 1 that must sit where a unit interval of the hull's interior reflects, and the two integers it would merge must both be reached — of the 2,532 systems of that sweep with Δ − Lb, alignment refuses 1,429 and reach 867, leaving the 236 that merge. The level is not always 1 and the merged pair not always adjacent: at radix 3 with {−2, −1, 13}, −3 has the residue no digit has, and the reached neighbours −4 and −2 are one state across it; and past the sweep, at radix 3 with {−1, 1, 30}, Δ − L = 13.5 ≥ b2 and the pair −13, −12 is one state decided at level 2 and at no lower — the gap of the attractor it sits across is the image of a level-1 gap under one more digit, and not a level-1 gap itself. The contiguous count is therefore the maximum over every digit set with those reaches, lost only to a cycle or a gap, and its own reachability is a descent: an integer of the interval beyond the digits, stepped by the largest digit of its residue, stays on its side and strictly decreases into the digits.

Each digit is therefore a map on a finite state set, and the numeral's sign is the composite of its digits' maps — a product in the finite transition monoid those maps generate under composition. For the minimal machine that monoid is the syntactic monoid of sign, the canonical object, and it has L2 + L + 1 elements plus a correction — one term per tail length m, counting the values a length-m tail can take whose action leaves two or more states live — where L is the number of live states, the machine less its two absorbing verdicts (and not the numeral width n above). The leading term is fixed by the state count and therefore by the reach ceiling; the correction is where the reach runs out, and it does run out. Radix 3 with {−7..7} and with {−8..8} share the reach ceiling, the nine-state machine and the leading 57, and their monoids have 73 and 75 elements. The collapse onto one parameter that governs the state cost therefore does not extend to the algebra the bracketing evaluates: what the wall costs answers to the reach, and what the wall is made of does not.

That correction is closed. A level contributes exactly when bmL − 1: the live states are a run of L consecutive integers, and such a run holds two integers bm apart exactly then — so which terms exist is a fact about the state count alone, and everything that escapes the reach sits in their sizes. Drop the clamp, and the tail values a level admits are L − 1 blocks of Lbm integers spaced bm apart; they merge into one interval when 2bmL and separate when they do not, with no third case. Em is that set met with the exact value range of a length-m tail. Each side has a ceiling defect ε = ⌈a/(b − 1)⌉ − a/(b − 1), the fraction of a state the reach's rounding throws away there. Where the blocks merge the tail range lies inside them outright — on each side the containment rearranges to 2bmL ≤ ε(bm − 1) for that side's own ε, whose left side is at most 0 and whose right side at least 0 — so the machine drops out of the count altogether and Em is the whole range, (a + a+)(bm − 1)/(b − 1) + 1: every length-m tail leaves two or more states live. That is 6076 of the 7524 contributing levels and 70% of the correction by value, and all of it reads the summed reach a + a+ at full resolution instead of through the ceiling — the sum and not the split, that range depending on the two reaches only through it, which is how {−7..7} and {−8..8} come apart, their corrections 16 and 18 differing because 14 and 16 do. The lattice structure survives only above the merge, in the 1448 split levels, and there that defect decides which constraint is the tighter: the tail range is, iff max(ε, ε+)(bm − 1) > 2bmL, which fires at 178 of them. So the leading term reads the two reaches only through their ceilings and the correction reads their sum whole, the defect's whole job being to place that boundary. Where every level merges — exactly when twice the largest contributing bm is at most L, 1946 of the 3579 systems swept — the correction collapses to one geometric sum and the monoid is a single expression in (b, a, a+); otherwise it is at most ⌊logb(L − 1)⌋ + 1 closed terms.

What that correction counts is an algebra and not only a number. The maps the leading term counts — those leaving at most one state live — absorb whatever they meet on either side, so they form a two-sided ideal; collapse the whole of it to a single zero and what stands above it is exactly what the correction counts. Each of those elements is a tail remembered by its length m and its value t and by nothing else, and two of them compose as (m1, t1)(m2, t2) = (m1 + m2, bm2t1 + t2) — a law with no machine in it. The algebra above the ideal is that law truncated, and the truncation is the only thing the machine still does to it: everything past the last contributing level is zero, and at a split level part of that level too, so it is a truncation and nothing else exactly where every level merges. It is therefore nilpotent — a product of as many nonempty tails as there are contributing levels is zero, and of one fewer is not, so the degree is ⌊logb(L − 1)⌋ + 1, the correction's own term count read again. Nothing of a group survives that: an idempotent is its own power forever while every long enough product is zero, so the only two are the identity and the zero and every subgroup is trivial. At radix 3 with {−7..7} the contributing levels are 0 and 1 — the fifteen values one digit takes and an identity, which are the 16 above the ideal — and every product of two of those fifteen lands in the zero.

So the algebra reads the digit set differently from the state count. Substituting u = t + a(bm − 1)/(b − 1) telescopes every a out of the composition law, leaving u = bm2u1 + u2, and turns a merged level into 0 ≤ u ≤ (a + a+)(bm − 1)/(b − 1). Where every level merges the algebra therefore sees the radix, the summed reach and the number of levels, and is blind to how the digit set is split between the two: radix 3 with {−7..7} and with {−6..8} have 7 and 6 live states and syntactic monoids of 73 and 59, and one and the same 16 elements above the ideal, with no exception over a radix 2 to 7 sweep. A split level is what breaks that blindness, and what it reads is the ordered pair of ceiling defects: its blocks begin at 1 − (a + a+)/(b − 1) − ε+bmε + 2bm, which weights the two differently, where the state count reads only their sum, L = (a + a+)/(b − 1) + ε + ε+ − 1. Two systems sharing the radix, the summed reach and the level count and carrying a split level agree exactly when they share that ordered pair, and among the pairs that share the sum while swapping the order none agree at all. At radix 2 both defects are 0 and the blindness is total.

So sign is a per-digit map at lookahead 0 followed by the syntactic monoid's product, and the wall lies entirely in the product: the minimal number of leading digits determining the sign is the full width at every system and every width run, never n − 1 and so nothing bounded as n grows. Yet composition is associative, and evaluating the product by a balanced-tree bracketing instead of a left-to-right scan agrees with brute force everywhere — depth log n, no data-dependent chain. Sign separates finite-state from finite-window, and that is the wall: not a hardness claim, and it holds at fixed width, where the argument that proves it on unbounded numerals — an all-zero prefix of any depth — is unavailable.

Where ab − 1 the verdict has a law simpler than the product — the leading-nonzero law: the sign is the first nonzero digit's, and a numeral is zero iff every digit is 0, a zero-test at lookahead 0 on a per-digit predicate. That region is exactly where the reach ceiling is 1, so the minimal machine there has three states — seen only zeros, negative, positive — which is the law's own machine: below the line the law is not a shortcut past the product but is the minimal object — and the monoid there is 3 at every system, so it is the whole algebra too and not only the whole automaton. Above that line it fails, the smallest witness sitting at radix 2 with digits {−2..2}: the string (1, −2) has value zero behind a nonzero lead.

The full width is not redundancy's price. At slack ρ = 2ab + 1 equal to zero — balanced ternary and radix 5 with digits {−2..2}, non-redundant, the read otherwise identical — the determining prefix is the full width just the same: sign is comparison against zero, zero sits on a cell boundary, and the non-redundant window's one-cell ambiguity already puts it out of reach. Neither does the state mark the regime. The count cuts across the redundancy boundary rather than tracking it — 3 states at both non-redundant controls and at radix 5 with {−3..3}, which is redundant — and it is not a function of the slack either: at ρ = 3, radix 4 with {−3..3} carries 3 states while radix 2 with {−2..2} carries 5. One dial, two costs, and the two costs turn out to be one function read twice. "Redundant" is exactly ρ ≥ 1, and ρ enters the price the arithmetic side pays without settling it — the window margin above, the one a redundant cover buys and the reading criterion prices (The dual pole), is logb(2a/ρ), which needs the digit bound too. What settles both is the reach: addition spends ⌈x/(b − 1)⌉ slack units on a side of reach x (Redundant arithmetic) and sign spends ⌈x/(b − 1)⌉ states, plus the one state that is the all-zeros class. The same ceiling of the same reach, priced in two currencies — and ρ, the dial the word coarsens, carries neither. Comparison and equality ride sign: comparison is the sign of a digitwise difference into the doubled set {−2a..2a}, redundant at the same radix and so covered by the same construction, and equality is that difference against zero. So comparison costs 2⌈(a + a+)/(b − 1)⌉ + 1 states — and it is blind to the crossing, the digitwise difference of an asymmetric set being symmetric whatever the split was. Ordering a redundant stream therefore costs strictly more state than reading its sign, except where both reaches are small enough to share one ceiling.

Scope. Rules, exhaustive at the swept widths over nine symmetric digit sets — seven redundant and two balanced non-redundant, the latter the control that places the full width. The full-width and factorization claims are not theorems: the widths are bounded by enumeration. Component tiers differ for the state count. The symmetric minimal count is a theorem for contiguous covering digit sets, proved by the tail argument above and verified exhaustively at 107 systems to radix 12; the asymmetric count is a theorem too, the same tail argument with reachability by the descent above, verified at 456 signed systems to radix 9. The closed form off contiguous sets is a theorem for every finite digit set with a member of each sign, its three factors derived above and the count checked against an independent minimizer at 19,450 systems over two sweeps — every interior at radix 2 to 6 with reaches to 5, and three- and four-digit sets at radix 2 to 5 with the negative reach to 3 and the positive to 15 — 236 of them merging. The merge condition's exact form is a criterion, proved both ways and checked against the same minimizer at the 9,840 three- and four-digit systems of the second sweep. The syntactic monoid's size is a rule on the same two grids — every one of those 107 symmetric and 456 signed systems — with the monoid rebuilt from a machine clamped three states wider on each side and minimized, so the count is a fact about sign and not about where a builder clamped. The correction's closed form is a rule over all 7524 contributing levels of the 3579 distinct systems those two grids and an overlapping extended sweep make up, tied at eleven of them to the monoid rebuilt by closure; its merged case is a theorem, proved by the containment above, with the 6076 merged levels a control on the proof rather than its evidence. The algebra above the ideal is derived from the composition law — the truncation, the nilpotency and the blindness alike. At seven named systems the (m, t) description is checked against the monoid rebuilt by closure as a bijection respecting products, and that check runs nowhere else; the nilpotency degree is then run over a radix 2 to 7 sweep of 773 systems. The blindness is a theorem at a fixed level count, while its reading over that sweep is a rule — 80 groups of two or more systems sharing the radix, the summed reach and the level count, all 80 carrying one algebra — as is the ordered-defect reading: 717 pairs of split-level systems, no crossings, and 116 of those pairs sharing the defect sum while differing in its order. Comparison's count follows from sign's; comparison and equality are otherwise reasoned from sign rather than swept.

verifiers: explore_order_wall_shape.py, explore_sign_minimal.py, explore_sign_sparse.py, explore_sign_window.py, explore_sign_monoid.py, explore_monoid_correction.py, explore_monoid_quotient.py