Digit shifts

Moving every digit of a string up by a fixed stride, and which of those moves a bounded reader can follow.

A window is a nested grid of cells refining toward a point, and it reads a map at lookahead c when the output cell at depth t is a function of the input cell at depth t + c. The windows here are the Ostrowski ones: for irrational α = [0; a1, a2, …] the digits of n write n = Σ bk qk over the denominators of α's continued-fraction convergents (q0 = 1, q1 = a1, qk = ak qk−1 + qk−2, the ak being α's partial quotients), and the depth-t cell of n is the set of nonnegative integers agreeing with n on their t low-order digits — cells partition at each depth and nest across depths. Legality — what makes the writing unique — caps b0 at a1 − 1 and bk at ak+1, and forces a zero below any digit sitting at its cap. What this family is, and which arithmetic maps its windows read — the arithmetic gate, where multiplication and division are held to no bounded lookahead while the unit action is not — are on Quadratic windows.

Where α is a quadratic irrational its quotient sequence is eventually periodic, and a window fixes more than one repeating length: each block below says which one it reads against. And the agreement depth of a pair of inputs is the number of low-order digits they share, which is what a scan reports when it asks how deep two inputs can agree while their images differ.

The maps read here are the shifts: Lr sends n = Σ bk qk to Σ bk qk+r, moving every digit up by a stride r. Shifting by one period of the quotient sequence multiplies asymptotically by the fundamental unit ε of Z[α]; a stride that is not a multiple of the period is nobody's unit action, so the shifts are a family of questions and not one.

A shifted string need not be legal. Digit bk arrives at position k + r, whose cap is ak+r+1, where legality promised only bkak+1. Where the quotient sequence is non-decreasing along the stride nothing can overflow, the shift is the bare coordinate map, and it reads at lookahead 0. Otherwise the illegal string is renormalized — the repair — and the converse fails: a shift whose repair fires on almost every input can still read at bounded lookahead. So there are three verdicts, and which (window, stride) pair gets which is the question: lookahead 0, bounded, and gated — no one lookahead serving every depth, the deepest witness growing with the range scanned.

The stride law rule

On the designed family [0; (1, …, 1, a)] — one large quotient a per period of length P, every other quotient 1 — the verdict is a function of r mod P alone, and carries no dependence on a whatever: r ≡ 0 is the period shift and reads at lookahead 0; r mod P even and nonzero reads at bounded lookahead; r mod P odd gates. Unanimous, no exceptions. Read off P = 2, 3, 4, 5, it then calls all 34 (window, stride) pairs at P = 6 and 7 — periods no fitted window carried, and where r mod P = 6 is the first even residue above 4 anywhere in the family. And it is not a fit: e − 2 = [0; 1, 2, 1, 1, 4, 1, 1, 6, …] — outside the family, and its continued fraction never eventually periodic — is the P = 3 pattern with a growing large quotient, and obeys the P = 3 row at every stride to 8. Two rivals die on the way: parity of r itself fails at e − 2's r = 4, even and gated, and the criterion "gated iff gcd(r, P) = 1" fits every pair through P = 4 and is parted at P = 5, whose residues 2 and 4 are coprime to 5 and bounded.

The interpretation that fits — an interpretation, not a derivation — is the reach of the window's own borrow. At a position whose quotient is a the denominator recurrence reads a·qk = qk+1qk−1, a rewrite spanning two positions, so a repair walks the digit lattice in steps of two, and what decides the pair is whether it can return to the residue class carrying the large quotients — the same step-of-two recursion the greedy string of qK − 1 runs on (the down-borrow, the maximal string). The naive interpretation — the cap above the landing site where an up-carry would need room — is refuted at 29 pairs, five at the cubic window ∛2 − 1 and twenty-four across the designed family. One thing the law settles behind it: the repair's reach, the lowest position any repair changes, does not decide the verdict but is exactly the lookahead-0 floor — every gated column's first nonzero entry sits one position above it, at all 32 pairs.

Scope. Rule at scanned scope: the designed family at P = 2, 3, 4, 5 and a = 2, 3, 5 — twelve windows, every stride to 2P, two ranges — plus the 34 out-of-sample pairs at P = 6, 7 with a = 2, 4, and e − 2 to stride 8. At the nine windows with P = 3, 4, 5 the reading is exact in the limit: the carry automaton of the next block prints, at all 54 strides, the zero column at r ≡ 0, an infinite column at every odd residue, and at every even nonzero residue a finite column of period P whose longest run and peak are at most 2 (explore_limit_column.py); the P = 2 arm, the P = 6, 7 pairs and e − 2 stay at scanned scope. P = 2 has no even nonzero residue and so tests two of the three arms; the third rests on the rest of the table. The non-decreasing sufficient half is settled separately. The step-of-two mechanism is an interpretation and is not proved.

verifier: explore_shift_repair.py, explore_limit_column.py

The limit of the lookahead, and the half-period stride theorem

A reading of a shift at a range N is one number per depth. The excess-lookahead column records, at each depth t, how much further than t a reader must see before it can commit t digits of the image, taken over the inputs below N. It can only rise as N grows, so it has a limit at every depth, finite or not — and at a periodic window that limit is computable. Put θk = qkαpk. With the quotients of period P the recurrence gives θk+P = η θk at every k, η a unit of the lattice ℤ + ℤα with |η| < 1 and its conjugate above 1. A shift's image is the greedy string of the same value, and two strings share a value exactly when their sums Σ dkθk differ by an integer; so reading input and image from the bottom digit up, the running discrepancy divided by θk is a point of one fixed lattice per phase, bounded in both embeddings on any run that can still end in agreement — finitely many carries — and the shift is a finite automaton. Drive two of its runs with one common input: the pairs whose images have already parted form an eventually periodic sequence of sets, so the limit column is eventually periodic in t or infinite from some depth on, and which, with the period and the values, is read off the automaton in under a second per cell. A reading at any finite range sits at or below the limit, so a bounded reading is open to the next range, and no finite table by itself decides that a column is infinite. At a quadratic α the graph of addition itself is recognized by a finite automaton — three sliding-window passes over the digits, alternating in direction (Hieronymi and Terry, 2018; the golden case is Frougny's) — so the arithmetic maps, each written from addition, have regular graphs there too, as a shift's is outright; what the column reads is the delay its function needs when read once from the bottom, which a regular graph leaves open — ×m's is regular and gated.

Give the period two different large quotients and the limit map is the stride law read against the length at which the large quotients recur, with one departure. The graded window [0; (1, 1, A, 1, 1, B)] has its large quotients three apart while its sequence repeats at six. Read against 3, strides 1, 4, 7 gate at every pair; strides 2, 5, 8 read at bounded lookahead at every pair; stride 6 needs none; and the half-period stride 3 — the one shift carrying each large quotient onto the other, a large digit dropping onto a position that is itself an absorber — gates at every pair with AB and needs no lookahead where A = B, where the window is the designed family and 3 is its period. The gate is explicit: at (8, 4) the integers 1638 and 364170 agree on ten digits and their images differ at position 3; one turn of the automaton's six-cycle later the witnesses agree on sixteen digits (66277120), then on twenty-two. A value law once read here — the pair bounded exactly when B < A ≤ 2B + 1 and A·B ≥ 30, at zero misses over 92 pairs, three ranges and two classifiers — was a statement about how deep that first witness sits against the range read: at (8, 4) it sits just past N = 300000, the deepest range scanned. What survives of it is that the verdict is not a function of the large quotients' positions alone, since A = B and AB share every position and read differently.

Scope. The existence of the limit column and its eventual periodicity are a theorem at every purely periodic window and every stride, derived with nothing imported. The values are exact computations, a rule over the cells read: the 210 pairs B = 3..12, A = 4..24 at every stride 1..8 — none off the map above — and the 92 pairs of the old grid at stride 3, every one with AB infinite and every one with A = B zero. Controls: 5000 of 5000 pairs accepted at three windows and three strides, exactly one image accepted at each of the first 300 inputs there; the period strides of the designed family printing the zero column; the finite column at N = 30000 at or below the limit at every depth of every cell of the three populations; the automaton's pruning box tripled without a verdict moving. A window with no period has no automaton.

verifiers: explore_limit_column.py, explore_cascade_span.py, explore_cascade_values.py, explore_cascade_rule.py

The run-length rule rule

Before the automaton, a verdict was read off a range comparison — the agreement depth one range reached against another's — which makes it partly a fact about the range set a sweep happened to use. A verdict can instead be read off a single table, and the thing that decides it is a length.

At a window whose quotient sequence has period P, cut the excess-lookahead column into maximal runs of nonzero entries. An obstruction that is local — generated by a bounded configuration of digits — recurs wherever that configuration recurs, and the rule read a run of length P or more as the sign of something else: consecutive copies of a local bump would touch, so — the argument ran — such a run is not a local feature of the period and the stride is gated, while runs shorter than P read at bounded delay. The tell was to be not the decline of exactly one per depth but whether the decline outlasts the period.

Both halves are readings. The bounded half is a lower reading: the column only rises with the range, so a bounded table is open to the next range. The gated half fails on a sawtooth: touching copies merge, and at two pairs of a two-class family — period 5, one large quotient 5 or 4 and another 2, stride 4 — the limit column is 5 4 3 2 1 recurring with the period and never returning to 0, bounded at lookahead 5, which the rule reads gated at N = 300000. A run that has outlasted the period stays, and need not grow. No choice of length repairs either half. Two lengths are fixed by a window's own data — the length at which the quotient sequence repeats and the length at which its pattern of large quotients repeats — and at the graded window they differ, 6 against 3. The sequence period is what the limit column carries, exactly — the period of every finite nonzero limit column at the graded window is 6 — but reading runs against it calls the half-period stride's first bump, 5 4 3 2 1, bounded where the limit gates it; reading against 3 would gate the 175 pairs at stride 2 whose limit column is the finite 0 0 0 3 2 1 recurring at six. At a periodic window the rule is a first reading and the automaton the verdict.

Scope. Rule at scanned scope, periodic windows. The 210-pair region B = 3..12 over A = 4..24 at r = 2 it reads bounded throughout is bounded in the limit, with the histogram the deepest range printed — 18 zero columns, 17 with a single 1, 175 with the run 3 2 1 — now exact. It reads, with nothing refused, all 84 pairs of a two-class family — eight windows whose period carries two large quotients each, over P = 4..7 — whose limit map is now exact: the criterion predicting a verdict from the large quotients' positions alone fails at 18 of the 84 in the limit, at 16 under this rule at one range, and the two sawtooth pairs are where this rule's gated half fails. The threshold itself was read off the nine designed windows, so those are a consistency check and not an independent control. Reading at the data's own depth rather than the shared cap of 10 moves no pair of the map and reproduces the designed family's parity law at 0 misses of 54 strides against 4 at the cap. The rule is bounded to periodic windows by derivation — a window whose quotient sequence never repeats has no length it is entitled to — so at ∛2 − 1 it refuses 7 of the 8 strides scanned and at e − 2 four of 8, reaching the rest only where the column runs to the scan's own lookahead cap, or where the shift needs no repair at all and reads at lookahead 0 for that reason.

verifiers: explore_cascade_rule.py, explore_cascade_scale.py, explore_limit_column.py, explore_limit_maps.py

The lookahead cap is calibration pattern

Every clause of that rule follows from something — the run against the period from what makes an obstruction local, the refusal from the room a signature needs — except one. A column whose peak — the largest entry it reaches — climbs to a fixed ceiling is read as saturated, and that ceiling is a bare number: a threshold on the excess itself, not the table-depth cap above. It is also the only clause left where there is no period, once the strides needing no repair at all are set aside, so every other verdict at ∛2 − 1 and e − 2 rests on it.

Nothing in a finite column can replace it, and the reason is now sharper than the exhibit that first showed it. One column the range comparison gated at the cubic — the single run 5 4 3 2 1 at depth 11 — had an exact twin, same depth and same lengths, at (8, 4) of the graded window at the half-period stride, then read bounded; that twin is a gated column at its first bump, so the two were two gated columns at the same truncation, which is exactly what one table cannot tell from a bounded one. So the number is read off the bounded corpus instead, and that corpus's ceiling is a limit rather than a measurement at three ranges — and it is the ceiling of the corpus read: over every finite limit column of the graded window at strides 2, 5 and 8 and of the designed family the largest run and peak are 4 and 4, attained at three pairs of stride 5, and the two-class family adds two bounded pairs at peak 5, the sawtooth above, whose peak is its period. The honest constant is one past the widest corpus read, 6. The split it must reproduce at the two windows with no period has its gated strides at peaks 12, 9, 7 (∛2 − 1, strides 1, 3, 5) and 12, 10, 7 (e − 2, strides 1, 4, 7) at N = 300000, with every bounded stride at 3 or below, so 6 or 7 issues the same split — two values of margin, and a ceiling that rose by one when one more periodic family was read.

Scope. Pattern at the two windows with no period, and it stays pattern: they have no automaton, and the constant does inductive work there that nothing derives. The bounded ceiling it is calibrated on is exact — the limit columns of 210 pairs at three strides, of the designed family at its even nonzero residues and of the two-class family's 84 pairs.

verifiers: explore_saturation_twins.py, explore_limit_column.py, explore_limit_maps.py, explore_cascade_rule.py

Neither end of a drop decides observation

A criterion on one drop — a large quotient overflowing onto a landing site, judged by the two quotients — is what a periodic window's readings are made of, the window having one drop and repeating it forever. A window with no period carries a whole multiset of quotient pairs per stride, so any such criterion reads a verdict per site and the quantifier over them is the question. There is none, and the witness needs neither quantifier nor count. At e − 2 the quotient pattern 1, 1, 2n puts a 1 at every landing site, so its strides pair up carrying one identical multiset of drop-site quotient pairs — the even quotients dropping onto 1 — at identical drop positions j = 1, 4, 7, 10, 13, differing only in where the drop lands, at j + r. And the pairs read gated, bounded, gated, bounded, gated, bounded. Any criterion that is a function of a drop's source gives both members of a pair one verdict, so it must be wrong at one member of each — at least three of the six scored strides — and three is exactly what every form scored: the roof under either quantifier, and the product at its threshold. A miss, not a silence.

With the graded window above that empties both ends of a drop's source. The graded window kills the positions, A = B and AB carrying one set of large positions and different verdicts; this kills the values, two strides of one window carrying one quotient-pair multiset and different verdicts. Where e − 2's verdict does live is the absorbing end: its large quotients sit on one residue class mod 3, which is why it is the P = 3 pattern the stride law already calls. The cubic ∛2 − 1 has no such class — its quotients above 1 sit at positions 0, 2, 5, 8, 10, 12, 13, 15, …, with gaps of 1, 2 and 3 from the start — and there the roof scores independently and misses too, 2 of 7 strides existentially and 4 of 7 universally, with no count or fraction threshold separating. So what plays the period at a window that has none is open.

Scope. Observation at the two windows with no period, e − 2 and ∛2 − 1, every scored stride read at three ranges. Three forms are scored — roof existential, roof universal, product at its threshold — each under both bounds on which drop sites count, and each missing three at e − 2; at the cubic the roof misses 2 of 7 strides existentially and 4 of 7 universally; that no statistic over the pairs can do better is the argument above and not a further measurement. What is refuted is any reading of an aperiodic stride off a drop's source; at the graded window the limit map above is exact and reads the drop's two quotients only as equal or not.

verifier: explore_cascade_roof.py

The shifts sit beside the arithmetic gate rather than under it. Where the continued fraction is periodic the shift by one period and multiplication by ε are the same map, so no window in the family can say which of the two its reading was ever about — and off that stride the shift is nobody's unit action and, on the designed family, reads at bounded lookahead anyway at every nonzero even residue of the stride mod the period of its large quotients. What decides a shift is therefore the stride read against a length the window itself fixes — and where the window fixes no such length, what plays that part is open.

The widened output

The same finite automaton, run as a game with the digits the reader may WRITE widened past legality while the input stays legal, separates the gate's two refusals, ×m's and ⌊n/m⌋'s, which are not held for the same reason. ×m's is the writing's: raise any output cap and the map has a bounded reader at every irrational window. ⌊n/m⌋'s is the map's and survives however far the alphabet is widened. And an integer input, which must finish, costs that reader lookahead of its own — never one digit, exactly none where the widening writes m dk digit by digit and at least two everywhere else, a rule at every periodic window — with the whole account on The widened output.