# The spirograph reaches - 2026-09-10 [Proved] A pencil at complex seat `p` wheel radii on a wheel rolling on a circle track `a/b` in lowest terms draws `z(psi) = r e^(i b psi) (A + p e^(i eps a psi))` on `psi` in `[0, 2 pi)`, with `A = abs(a/b + eps)`, `eps = -1` inside and `+1` outside. Witness: lab/rs/roulette-reaches, mrlynum::spirograph::point. - 2026-09-10 [Proved] That trochoid's picture turns `a` fold, since `z(psi + 2 pi / a) = e^(2 pi i b / a) z(psi)` with no `eps` because `e^(i eps a 2 pi / a) = 1`, and turning the seat by `alpha` turns the whole curve by `-b eps alpha / a`, since shifting `psi` by `-alpha / (eps a)` absorbs the seat turn and leaves the prefactor `e^(-i eps b alpha / a)`; the four seats of one square orbit therefore draw four rotations of one master curve and the seat modulus is the only shape parameter. Witness: research/lab/rs/roulette-reaches. - 2026-09-10 [Proved] Writing `x` for the seat's phase and `m(x) = 4 a (b eps x / a + arg(A + p e^(ix))) / pi`, with `p` not zero the radius `abs(A + p e^(ix))` is strictly decreasing on `[0, pi]`, so the trochoid meets every circle strictly between the two apex radii in exactly `2 a` points, at the angles `c + m/8` and `c - m/8` in units of a turn over `a`, with seat offset `c = -b eps arg(p) / (2 pi)`. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] While the seat modulus is under `A` the mark runs from `0` at the outer apex to `4 b eps` at the inner one, and past `A` the point `A + p e^(ix)` circles the origin so the inner value is `4 b eps + 4 a` instead. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] The mark is one to one in the radius whenever the seat modulus is under `min(1, A)`: while it is under `A` the derivative of `arg(A + p e^(ix))` in `x` grows with `cos x`, running from minus the modulus over `A` minus the modulus at `x = pi` to the modulus over `A` plus the modulus at `x = 0`, and each of those stays under `b/a` exactly when the modulus is under one, while past `A` the derivative at `x = pi` exceeds one and the mark turns back. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] That window is sharp but for one endpoint: at modulus one the binding derivative meets `b/a` at the single phase `x = 0` inside and at `x = pi` outside, so the mark is still one to one there, and every larger modulus fails. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] Two trochoids of one seat modulus whose seat offsets differ by a quarter turn cross only on the circles where the mark is a whole number, and a curve crosses itself only where the mark is a multiple of four; the quarter turn is needed, since seats a fifth of a turn apart on `7/3` inside cross where the mark is plus or minus `1.2` modulo four. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] Inside the window the mark's range has length `4 b`, so a trochoid on a circle track `a/b` has `b - 1` self crossing circles and `a (b - 1)` self crossings, and two distinct curves of one seat modulus a quarter turn apart have `2 b` crossing circles and `2 a b` crossings. Witness: lab/rs/roulette-reaches, mrlynum::spirograph::trace. - 2026-09-10 [Proved] Three trochoids of one seat modulus on a circle track never run through one point unless the modulus is `A`: the radius squared `A^2 + q^2 + 2 A q cos x` for modulus `q` is strictly decreasing in `x` on `[0, pi]`, so one radius fixes one phase and one mark for all three at once, the angles are `c + m/8` and `c - m/8`, two of the three must share a sign, and that forces their seat offsets to differ by a multiple of a turn over `a`, which makes the two curves the same curve. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] That argument needs only the monotone radius, so it carries past the one to one window, holds for `b` even, and holds at both apexes where the two signs merge. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] At seat modulus `A` on a circle track `a/b` every trochoid of that modulus runs through the centre, `a` times each; inside this needs `b < a < 2 b` for a modulus under one, and outside it never happens because `A = a/b + 1` exceeds one. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] A meeting of trochoids from the carpet's two seat moduli on a circle track `a/b` happens exactly when both marks are whole numbers at one radius and one eighth class collects three or more branches; the seat offsets are the exact eighths `-b eps d` mod 8 for compass index `d`, so the test is integer arithmetic and never a tolerance, each meeting class holds `a` points because the picture turns `a` fold, and each meeting swallows five of the generic picture's double points. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] A trochoid on a circle track `a/b` sits at whole mark congruent to `j` modulo four exactly where `w^(a + 2 b eps) (A + p w)^a = i^j (A w + p)^a` on the unit circle, which follows from `abs(A + p w)^2 = (A + p w)(A w + p) / w`; squaring the mark condition loses half the angle, so the law pins the mark only modulo four. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Proved] The carpet alignment reaches on a circle track `a/b` are contained in the real algebraic set cut out by that law for the corner modulus, the same law for the edge modulus, and the equal radius equation, three real equations in three real unknowns over the field generated by the square root of two; the containment is proper, since the law pins the mark only modulo four and the marks `-10`, `-6` and `-2` share one system on `7/3` inside, but the mod four branches are disjoint and closed inside the window because the mark is continuous there, so an isolated alignment reach is an isolated point of that set and hence an algebraic number. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Verified] The reduction agrees with `mrlynum::spirograph::point` to `2.138e-13` over all 98 circle tracks with `b` in `1..8` and `a` in `b+1..13` coprime, both sides, on all eight carpet fill seats at reach `0.83` and 29 phases a seat, and the seat offset classes reproduce `mrlynum::spirograph::distinct` on all 98. Witness: lab/rs/roulette-reaches, mrlynum::spirograph. - 2026-09-10 [Verified] The node counts `a (b - 1)` and `2 a b` need the seat modulus under `min(1, A)` and not merely under one: the radius and mark census of the study gives `7/5` inside `4` self classes and `10` pair classes per pair at modulus `0.3900` under `A = 0.4`, and the pair count falls to `8` at `0.4100`, while `4/3` inside falls from `2` self classes to `1` between `0.3267` and `0.3400`, both well under the cusp threshold one. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Verified] The carpet on `7/3` inside has 24 alignment reaches over the scan, 21 transversal and 3 tangential; every transversal meeting carries four branches, twelve of them from four distinct curves and nine from three, one curve bringing two branches where its own self crossing lands on the meeting. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Verified] The `7/3` inside transversal reach near `0.79` is `0.791009415157` with marks `(-6, -9)`, ring `1.005704332357` wheel radii and corner seat modulus `0.527339610104`; the f64 bracket is `1.1e-16` and the exact law residual `4.18e-15`, so the printed twelve decimals round safe. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Verified] The four curves predicted to meet at that reach do meet on the crate's own curve: the four meeting seats sit `2.167e-5`, `1.441e-6`, `7.697e-8` and `5.590e-9` from the point the algebra names, read in f64 from `mrlynum::spirograph::point` at 2000, 8000, 32000 and 128000 samples, falling like the square of the sample count, while the other four seats stay `1.206e-1` away. Witness: lab/rs/roulette-reaches, mrlynum::spirograph::point. - 2026-09-10 [Verified] The same read off `mrlynum::spirograph::trace` gives `2.162e-5`, `1.526e-6` and `1.109e-7` at 2000, 8000 and 32000 samples, tracking the f64 column until it reaches the f32 floor: `trace` returns `f32`, half a step at that radius is `1.192e-7`, so the third column measures rounding rather than convergence and only the first two carry the square law. Witness: lab/rs/roulette-reaches, mrlynum::spirograph::trace. - 2026-09-10 [Verified] At the control reaches `0.781009` and `0.801009` no class carries more than two branches and the four seats stand `1.767e-2` and `1.771e-2` off the point that meets at `0.791009415157`. Witness: lab/rs/roulette-reaches, mrlynum::spirograph::trace. - 2026-09-10 [Verified] The node count drops at a transversal alignment: `7/3` inside carries 184 crossing classes at a generic reach and 164 at the reach `0.791009415157`, the four meetings swallowing five double points each, and since the picture turns `a` fold those are 1288 and 1148 nodes. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Verified] The tangential alignment family is not empty: inside the window the corner band contains the edge band, so a corner pair's crossing radius sweeps through both edge apex radii, and on `7/3` inside three such reaches sit in the scan, at `0.687455178256` with marks `(-7, -12)`, `0.948942238176` with `(-1, 0)` and `1.176138007019` with `(-5, -12)`. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Verified] The two sided falsification holds over all 98 circle tracks with `b` in `1..8` and `a` in `b+1..13` coprime, inside and outside, inside the window: 2157 alignment reaches, 193 of them tangential, every one carrying a node past two branches read off `mrlynum::spirograph::point` in f64 and off `mrlynum::spirograph::trace` in f32 at 8000 samples, worst gap `2.445e-4` in f64 against a worst f32 floor of `9.537e-7`, and none of the 98 control reaches carrying one. Witness: lab/rs/roulette-reaches, mrlynum::spirograph::trace. - 2026-09-10 [Verified] Every transversal alignment carries `4 / gcd(b, 4)` meeting classes, and the reach counts are stable in the scan: `7/3` inside gives 24, `12/7` inside 153, `13/7` inside 177, `9/5` inside 89, `13/8` inside 11 and `13/7` outside 61, each at both 6000 and 24000 steps. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Conjecture] Every carpet alignment reach is an isolated point of the real algebraic set that contains it, and so an algebraic number. The scan finds each reach as a simple sign change of a continuous defect, and no two of the 2157 reaches over the 98 tracks coincide, but nothing in the run certifies isolation, and a failed integer relation search to degree 48 with coefficients under `1e7` at 200 digits on the `7/3` reach `0.791009415157` is consistent with either answer. Witness: lab/rs/roulette-reaches. - 2026-09-10 [Conjecture] The number of carpet alignment reaches on a circle track `a/b` inside the window follows the window's own width: inside it climbs with `a` while `a < 2 b`, where the window is `A` and grows with `a`, and falls once `a > 2 b`, where the window is the fixed one, `b = 3` inside giving 18, 28 for `a = 4, 5` and then 24, 21, 19, 18, 15 for `a = 7, 8, 10, 11, 13`, and `b = 5` inside rising 39, 55, 71, 89 and then falling 79, 68, 64; outside it barely moves with `a`, `b = 3` giving 9, 9, 11, 11, 11, 11, 12 and `b = 7` giving 57, 57, 57, 57, 57, 61. No closed count is proved. Witness: lab/rs/roulette-reaches.