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
bk ≤ ak+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+1 −
qk−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 A ≠ B
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
A ≠ B 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 A ≠ B 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
A ≠ B 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.