--- title: Spin lead: A design turned about its centre: the ripple identity, the complete spin spectrum, the sponge's opaque diagonal, and a Gaussian Farey. figure: research-spin slug: spin --- Turn a design about its centre and look at the average. The instrument is exact, the identities are proved, and the census is run. **Proved** means a proof is given here; **Verified** means recomputed by a crate test or a lab study; **Conjecture** means neither. The generators are `mrlynum::spin`, the host fixture of `mrlydemo`, and `lab/rs/spin-census`, the one pass behind every number of the census below. The [spin demo](../../site/demos/spin/) shows the infinite spin, the [radial demo](../../site/demos/radial/) the finite ones and the harmonics each keeps. ## The identities - Write a picture in circular harmonics, `f(r, phi) = sum_m f_m(r) e^(i m phi)`. The average over the `q` rotations by multiples of `2 pi / q` keeps exactly the orders with `q | m`; the average over all rotations keeps `m = 0`. **Proved**: a rotation by `2 pi / q` multiplies `f_m` by `e^(2 pi i m / q)`, and the `q`-th roots of unity sum to zero unless `q | m`. - A screen turning a design by `p/q` of a turn per frame, `p/q` in lowest terms, shows only `q` orientations, so a long afterglow shows the `q`-average. A design of rotation order `g` has `f_m = 0` unless `g | m`, so the lowest surviving order is `lcm(q, g)`: the petal count. **Proved**; witness `the_harmonics_read_the_rotation_order`. - The infinite spin of a raster is its ring profile `F(r)`, the exact circle mean, and `int 2 pi r F(r) dr` is the fill. **Proved**; witness `the_mass_of_the_profile_is_the_fill`. The carpet's profile is zero to `r = side/6`, its central hole. **Verified.** - A plane wave averaged over a turn is `J0(|k| r)`, so the infinite spin is the Hankel transform of the radially averaged spectrum, ringing at the lattice norms `a^2 + b^2` and `a^2 + ab + b^2`. **Proved.** - [The primes](/wiki/prime-numbers/) decide the rings. The square lattice rings at `sqrt(n)`, `n` in [A001481](../REFS.md), with weight `r2(n) = 4 (d1 - d3)`, [A004018](../REFS.md): silent exactly where a prime `3 (mod 4)` divides `n` to an odd power, and summing to `4 zeta(s) L(s, chi_4)`, the zeta of `Z[i]`. The hexagonal lattice rings at [A003136](../REFS.md) with weight [A004016](../REFS.md), `6 zeta(s) L(s, chi_-3)`, the zeta of `Z[omega]`: the two L-functions of [pi](pi.md) and [bases](bases.md). The mass of a spun lattice is the Gauss circle count, and Hardy's Bessel series for its error is this ring expansion ([Hardy 1915](../REFS.md)). **Proved.** The [gaussian demo](../../site/demos/gaussian/) paints the primes of both rings and bars the weights. ## Known elsewhere - A picture laid on a slightly turned copy shows concentric circles ([Glass 1969](../REFS.md)). - Orientation-averaged scattering from [the sponge](/wiki/menger-sponge/) and [the carpet](/wiki/sierpinski-carpet/) is log-periodic with period the scaling factor ([Cherny, Anitas, Osipov and Kuklin 2011](../REFS.md)). - The spherical average of `|mu^|^2` decides whether a fractal's distance set has positive length ([Mattila 1987](../REFS.md)). - Self-similar sets with irrational rotations have no exceptional projection; the designs have none, so a sponge's exceptional shadows are rational ([Falconer, Fraser and Jin 2015](../REFS.md)). ## The census A spin needs a centre, and the raster's centre is the wrong one for half the family. Every filled digit `d` of a design is the attractor of one map `S(x) = (x + d)/base`, whose fixed point is `p_d = d/(base-1)`; the design is exactly self-similar about each. Read `M(r) = int_0^r 2 pi s F(s) ds` about `p_d`. - **The spin mass is exactly log-periodic about a fixed point. Proved.** `S(F) = F ∩ cell_d` for `F` the design, and the equal-weight self-similar measure divides by the fill under one map, so `M(r/base) = mu(S(B(p_d, r) ∩ F)) = M(r)/fill` for every `r` with `r/base` below the distance from `p_d` to the other filled cells. Hence `M(r) = r^(log(fill)/log(base)) G(log_base r)` with `G` periodic of period exactly `log base` - the ripple's period is an identity, not a fit. The corner digit gives the widest window, `r <= side`; the centre digit only `r <= side/2`. Witness `the_spin_mass_scales_by_the_fill_about_a_filled_corner`; the instrument is `mrlynum::spin::mass_within`. - **About the raster centre the spin dimension is undefined for half the designs. Proved.** An empty centre digit removes the open square of side `side/3` about the raster centre, hence its inscribed disc of radius `side/6`, so `M(r) = 0` for every `r <= side/6`: the centre-spun mass carries neither power law nor ripple over a whole factor of the base, and the raster centre is not a fixed point at all. The bound is attained, in exact integer arithmetic on doubled coordinates rather than on cell centres, which would return `hole + 1/2` whatever the hole: the squared distance from the centre to the nearest filled cell is `(side/3)^2 = 6561` at level 5 for both `bang dim 2, base 3, code 239` and the carpet `495`, that is `side/6 = 40.5` exactly, while `79` empties more, out to `56.572962`. Reading the spin dimension at the raster centre separates `127` from `239` only by which of them has a centre at all. - **The slope is the dimension. Verified** (`lab/rs/spin-census`). Corner fixed point at level 6, window `27 <= r <= 729`, three whole periods: slopes `1.465054, 1.649432, 1.783588, 1.761814, 1.897854, 1.879522, 2.000100` for codes `79, 95, 127, 239, 255, 495, 511` against the exact `log(fill)/log 3 = 1.464974, 1.630930, 1.771244, 1.771244, 1.892789, 1.892789, 2` - every gap at or below `1.9e-2`, and the solid square reads `2.000100`. The discretisation of the identity, `max |M(3r)/(fill M(r)) - 1|` over the window, runs `5.3e-3` to `1.8e-2` and is the size of the error the slopes carry. - **The ripple separates the equal-mass pairs. Verified** (`lab/rs/spin-census`). Fold `ln M(r) - (log(fill)/log 3) ln r` with that exponent taken exactly, never fitted, into 24 bins of `log_3 r` over whole periods; the drift bar is the same fold on the first half of the window against the second. At level 7 about the corner, `127` against `239` gives ripple gap `0.11984` on bar `0.04126`, and `255` against the carpet `495` gives `0.12042` on bar `0.01461` - both separated, where `dimension` and every density reading are identical. The solid square is the control and has no ripple: swing `0.00277` under its own bar `0.00578`. The pipeline control is exact: a code and its mirror return the same ripple to the last bit, worst gap `0.00e0`. About the corner the instrument is invariant under the one transposition fixing that corner and not under the whole square group, so the corner ripple is a function of the transpose class, and a design's full spin fingerprint is the family of ripples over all its filled digits. - **The ripple is not a complete invariant of the transpose class. Proved.** A design that is a solid segment has `M(r) = c r` exactly about a fixed point on it, so `ln M(r) - D ln r` is constant and the ripple vanishes identically. Code `7` draws the solid row and code `273` the solid diagonal; both are of dimension exactly 1, they lie in different transpose classes, and both carry the zero ripple. No bar is needed for the conclusion; the census reads them at swings `0.01114` and `0.01217` and at mutual gap `0.01371`, all of it discretisation. - **Near-degeneracies outside the segment case exist, and their count is not stable. Verified as a phenomenon** (`lab/rs/spin-census`). De-duplicated to transpose classes, the equal-fill class pairs whose ripples sit inside their own drift bar number 13 at level 6 and 6 at level 7, at gap-to-bar ratios `0.71` to `0.95`, the tightest being `287` against `315` at fill 6, gap `0.03574` on bar `0.04543` - two designs that differ by moving one cell from `(0,2)` to `(1,2)`. Six survive both levels: `287-315`, `63-123`, `123-187`, `31-59`, `437-485`, `37-261`. The count moves with the level and with the estimator, so this is a list of near-coincidences and not a census of them. - **No two designs outside one symmetry orbit are spin-isospectral. Verified** (`lab/rs/spin-census`). `P_m = int |f_m(r)|^2 2 pi r dr` for `m = 0..12`, read at levels 1 and 2 over all 511 nonempty base-3 plane codes, splits them into exactly 101 spectra - the count of nonempty orbits of the square group, whose largest orbit has 8 members and whose largest spectral bucket has 8. Not one pair outside one orbit agrees to `1e-9`. Within the family the spin spectrum is a complete invariant of the dihedral class, and the isospectral witness the question asks for does not exist here. - **The spin spectrum is a quadratic form, so it reads a pair census and nothing else. Proved.** Write the render at level `level` as `f = sum_j x_j 1_(cell_j)` over its cells. Every ring coefficient `c_m(r)` is linear in the indicators, so `P_m = sum_(j,k) x_j x_k Q_m[j,k]` with `Q_m[j,k] = int Re(g_(m,j) conj(g_(m,k))) 2 pi r dr` and `g_(m,j)` the `m`-th coefficient of one cell. Turning a pair of cells about the raster centre by `theta` multiplies both `g` by `e^(-i m theta)` and leaves their product fixed; reflecting conjugates both and leaves the real part fixed. So `Q_m` is constant on the orbits of the raster's symmetry group acting on pairs of cells, and `P_m` is a linear functional of the pair census `Phi_level`: the number of filled cell pairs in each such orbit, an exact integer vector computed with no transform. Two designs sharing a pair census share `P_m` identically, at every order, every ring count and every truncation. The hypotheses are that the render is a constant-valued `0/1` indicator on a raster of side `base^level`, that the ring radii are data-independent, and nothing more; at dim 3 the covariant object is the degree-`l` power summed over its `2l + 1` orders, not a single `(l, m)`. The base-3 plane has 11 pair classes at level 1 and 461 at level 2; solving the level-1 coefficients from 11 independent censuses reproduces `mrlynum::spin::harmonics`, read at 1024 rings and `m = 0..12`, on all 511 codes at worst relative residual `1.14e-14`. - **Level 1 alone is not complete, and the four witnesses are exact. Proved.** The level-1 pair census takes exactly 97 values on the 101 orbits. Codes `45` and `105` at fill 4, `61` and `121` at fill 5, `78` and `102` at fill 4, `94` and `118` at fill 5 are four homometric pairs: different square-group orbits with all 11 class counts equal. By the reduction each pair's whole level-1 spectrum coincides identically, for every `m` and every resolution, so the 101 is a level-2 fact and never a level-1 one. The instrument agrees rather than being asked to: `P_m` read at level 1 alone, bucketed greedily by first match at tolerance `1e-9`, gives 97 spectra, the four pairs at gaps `1.30e-16`, `1.03e-17`, `6.51e-17` and `1.64e-16`, and level 2 separates the same four at `0.151`, `0.0689`, `0.253` and `0.105`. - **The 13 orders see exactly 9 of the 11 census directions: the cap is 9 overall, 6 even and 3 odd. Proved for the caps, Verified for their attainment** (`lab/rs/spin-census`). The half turn `rho` lies in the square group, so it acts trivially on classes and says nothing; the involution that bites half-turns one member only, `tau: {j, k} -> {rho j, k}`, which is well defined on classes exactly because `rho` is central in `D4`, giving `{j, rho k} = rho . {rho j, k}` and `{rho g j, g k} = g . {rho j, k}`. Since `g_(m, rho j) = (-1)^m g_(m, j)`, `Q_m . tau = (-1)^m Q_m`, so at odd `m` the coefficient vector is `tau`-antisymmetric. `tau` fixes 5 of the 11 classes - the two corner-corner and edge-edge classes it closes and the three touching the centre - so the antisymmetric part has dimension `(11 - 5)/2 = 3` and no number of odd orders can exceed rank 3. The six odd orders reach exactly 3 and the seven even orders exactly 6, the proved caps, for 9 of 11 in all: the level-1 spectrum is strictly coarser than the census it factors through, and splits it into the same 97 classes anyway. - **The completeness is not about base 3. Verified** (`lab/rs/spin-census`), as a statement about the census and not yet about the truncated spectrum. At base 5 the level-1 pair census takes `3993511` values on the `4211743` nonempty square-group orbits of the `5 x 5` plane, `204856` of them shared by `423088` orbits with the largest tie holding 8. At base 3 with dim 3, under the order-48 cube group, it takes `1461693` values on the `2852287` nonempty orbits, `757066` shared by `2147660` orbits with the largest tie holding 32. Every one of those ties breaks at level 2: the generator's weight window is budget-capped but did not bind, covering every group, all `204856` of them out to weight 21 and all `757066` out to weight 24, against level-2 censuses of 24805 and 6325 classes. So `Phi_1` with `Phi_2` is injective on orbits at base 3, at base 5 and at dim 3 alike, and the census collision that would make the theorem a fact about base 3 does not exist. The canonical-form orbit counts match the [Burnside](/wiki/burnsides-lemma/) averages `4211744` and `2852288` the same pass computes from the cycle index. - **Census injectivity is necessary, not sufficient. Conjecture.** The 26 numbers `P_m` at levels 1 and 2 are a projection of rank at most 26 of a census of dimension `11 + 461` at base 3, and `55 + 24805` at base 5; at level 1 that projection already loses 2 of 11 directions. So the base-5 and dim-3 results remove the only obstruction that transfers - a shared pair census - without establishing that the truncated spectrum itself separates there, which no run of the transform at those sizes has been made to decide. - **The powder falls as `-log(fill)/log 3`. Conjecture.** Arithmetic ring average of `|F(k)|^2` in 240 logarithmic bins over the band `3 pad/side` to `pad/8`, at level 7 with pad 4096: slopes `-1.37986, -1.51762, -1.73012, -1.83071, -1.97886, -2.00433` for `79, 95, 127, 239, 255, 495` against `-log(fill)/log 3 = -1.464974, -1.630930, -1.771244, -1.771244, -1.892789, -1.892789`, every gap at or below `0.24` over both pads. The agreement is inside the instrument's own spread and so establishes nothing. Sliding a three-period fit window a quarter period at a time inside the same band moves the slope by `0.16` to `0.45`, two to four times the gap it would have to establish; doubling the pad to 8192 moves every slope it is run on, `127` from `-1.73012` to `-1.81607`, `255` from `-1.97886` to `-2.03225`, the carpet from `-2.00433` to `-2.12289`. A band-split bar is not an error estimate here - the slide and the pad are - and the readings do not move monotonically toward `-log(fill)/log 3` as the level or the band grows. - **The powder is not Porod. Verified** (`lab/rs/spin-census`). Every sliding-window slope of every fractal code, at both pads, stays above `-2.28`, hence at least `0.72` from the `-3` a sharp interface would give. The solid square is the control and behaves the other way: it slides from `-2.75781` to `-2.35759`, coming within `0.25` of `-3` and never near its own `-log(fill)/log 3 = -2`. Whatever the exponent is, the mass-fractal side and the surface side are cleanly apart. - **The powder's log-periodic ripple is not resolved. Conjecture.** Folding the band's residual at period `log 3` swings by `1.5` to `4.4` in `ln` power, larger than the fit it is a residual of: the ring average of a lattice point set is spiked on the norms of [A001481](../REFS.md), and 4 periods of band do not average those spikes away. The log-periodicity of ([Cherny, Anitas, Osipov and Kuklin 2011](../REFS.md)) is neither confirmed nor denied here. ## The shadow - **The sponge blocks every lattice line down its space diagonal. Proved**; recomputed by `lab/rs/spin-census`. Count lattice lines in direction `v` meeting the sponge at level `level`, as classes of filled cells under `x -> x cross v`; the shadow obeys `S_(level+1) = union_d (3 S_level + proj d)` over the digits, so it is decided by the digit projections alone. Along `(1,1,1)` the 27 cube digits project onto 19 classes and the 20 sponge digits, being a subset, project onto 19 too - hence onto the same 19, and the induction gives sponge shadow equal to cube shadow at every level. The count is `3^(2 level+1) - 3^(level+1) + 1`, the centred hexagonal number [A003215](../REFS.md) at `3^level - 1` and [A220978](../REFS.md) at `level`: `19, 217, 2107, 19441, 176419` for `level = 1..5`, matched by both objects. No lattice line down the space diagonal passes through the sponge without meeting a cell. - **The sponge's axis shadow is exactly the Sierpinski carpet. Proved**; recomputed by `lab/rs/spin-census`. The 20 sponge digits project along an axis onto the 8 carpet digits, disjoint modulo 3, so the shadow is the carpet at level `level`: `8, 64, 512, 4096, 32768` against the cube's `9^level`, a share `(8/9)^level` falling to `0.62430` at `level = 4`, dimension `log 8 / log 3 = 1.892789` against the cube's 2. - **No other direction in the searched window is deficient. Verified** (`lab/rs/spin-census`). Over the 13 directions with `0 <= a <= b <= c <= 3`, read to level 4 against the cube and level 5 against itself, the axis is the only one whose share of the cube's lines falls with the level; every other share rises, `(1,1,2)` reaching `0.98568` and `(0,1,2)` `0.97090` at `level = 4`. Rational exceptional directions exist, as ([Falconer, Fraser and Jin 2015](../REFS.md)) allows; whether the axes are the only ones is not settled by a 13-direction search. ## A Gaussian Farey Scale `n` draws the lattice `(1/n) Z^2` and its radii `sqrt(k)/n`, `k` in [A001481](../REFS.md); read them inside the disc of radius `sqrt 2`, the spun form of the [Farey](/wiki/farey-sequence/) window of [farey](farey.md). - **A radius is new at `n` exactly when `k` is free of the squares of the primes dividing `n`. Proved.** `sqrt(k)/n = sqrt(k')/m` needs `k m^2 = k' n^2`, and `k' <= 2m^2` follows from `k <= 2n^2`; the sum-of-two-squares condition on `k'` is automatic, since `v_p(k') = v_p(k) + 2 v_p(m) - 2 v_p(n)` has the parity of `v_p(k)`, which is even at every `p = 3 (mod 4)`, so only integrality binds. The least `m` with `n^2 | k m^2` is `n` itself exactly when `min(v_p(k), 2 v_p(n)) <= 1` for every `p | n`, that is when no prime of `n` has its square dividing `k`. - **The count is a Mobius sum over the radical. Proved**; recomputed by `lab/rs/spin-census`. `k` lies in the sum-of-two-squares set and `d^2 | k` if and only if `k/d^2` lies in it too, so `new(n) = sum_(d | rad n) mu(d) B(2n^2/d^2)` with `B` the counting function of [A001481](../REFS.md). Both routes and a direct union over reduced squared radii agree at every `n` to 64: `2, 3, 9, 11, 22, 18, 40, 38, 55, 52, 91, 64, 123, 97, 128, 126, 199, 136, 243, 180`. - **The spun `phi(n)` is the Jordan totient. Proved.** The local factor of the [Mobius](/wiki/mobius-function/) sum is `prod_(p | n) (1 - 1/p^2) = J_2(n)/n^2`, so the new radii are that fraction of all radii at scale `n`, exactly as the Farey new fractions are `phi(n)/n` of all - the square lattice raises the exponent, it does not change the shape. The approach is slow because `B(X) ~ K X / sqrt(ln X)` ([A064533](../REFS.md)) makes `B(X/d^2)/B(X)` exceed `1/d^2` by a `1/ln X` margin: along the radical-6 family the ratio climbs `0.56250, 0.59813, 0.61126, 0.62594, 0.63276, 0.63801` at `n = 6, 12, 24, 48, 96, 192` toward `2/3`. - **The new radii are not counted by primitive representations in `Z[i]`. Refuted.** The norms below `2n^2` with a primitive representation run `2, 3, 6, 9, 13, 17, 23, 29, 35, 44` against `new(n) = 2, 3, 9, 11, 22, 18, 40, 38, 55, 52`, agreeing only at `n = 1, 2`. Primitivity is the wrong condition - `(3,4)` is primitive and `25` is a square, so `sqrt(25)/5 = 1` is old at 5, while `(4,0)` is imprimitive and `sqrt(16)/3` is new at 3. - **The disc and the box read different Farey windows. Verified** (`lab/rs/spin-census`). Restricting to the box `0 <= a, b <= n` instead of the disc breaks the criterion at `n = 3`, witness the radius `4/3`: `16` is free of `9` and `4/3 < sqrt 2`, but `16 = 4^2 + 0^2` needs a coordinate above 3. The box counts run `2, 3, 7, 9, 17, 14, 31, 27, 41, 38` and the two readings part company from `n = 3` on. The disc is the reading the spin sees; neither sequence is in the OEIS, so both are candidates. ## What is left - The coprime law does not spin. Flat layers at coprime odd scales are uncorrelated, the stack's prime detector; their ring profiles correlate at `+0.38` for `(3, 5)`, `-0.33` for `(5, 7)`, `+0.38` for `(9, 13)`, no better than `gcd` pairs. The cancellation is separable in `x` and `y`, and the spin discards the angle. **Refuted**; witness `the_coprime_law_dies_under_the_spin`. - What the corner ripple does not see beyond the segments: the six class pairs that survive both levels are not explained. **Conjecture**: the ripple's Fourier coefficient at frequency `2 pi / log 3` is a linear functional of the digit set, and its kernel is what collides. - Whether the powder exponent is `-log(fill)/log 3` at all. The slide and the pad move it by more than the gap, so the band would have to reach level 9 or so, and the estimator would have to average the lattice spikes, before the question is even asked cleanly. **Conjecture.** - Whether the axes are the sponge's only deficient directions. The window searched is `|v| <= 3`. **Conjecture.** - The exact growth of `new(n)`: the Mobius sum is proved, but `B` itself has no closed form, so the Gaussian Farey has a Landau-Ramanujan constant where the Farey has none. **Conjecture** that `new(n) sqrt(ln n) / n^2` converges, to `sqrt 2 K prod_(p | n) (1 - 1/p^2)` along each radical class.