Menger Diagonal Slices: A Recurrence of Order ⌈D/2⌉Menger Diagonal Slices: A Recurrence of Order ⌈D/2⌉

Menger Diagonal Slices: A Recurrence of Order ⌈D/2⌉

MrlyProd

First published 2026-08-23, revised 2026-09-08

PDF · TeX

Slice a Menger sponge along its main diagonal, count the cubes the cut meets, and repeat in every dimension. The counts are not arbitrary: each one is decided by the few before it. A carry automaton with a contraction and a reflection shows that in dimension DD only D/2\lceil D/2 \rceil previous terms are ever needed - about a quarter of the 2D+12D+1 that the standard construction hands you for free. At D=3D = 3 the machine returns the published spectrum of the hexagon-triangle substitution without ever seeing a hexagon.

How many past terms the diagonal slice census needs: the free bound 2D+1 against the proved order ceil(D/2), for dimensions 2 through 14.
How many past terms the diagonal slice census needs: the free bound 2D+1 against the proved order ceil(D/2), for dimensions 2 through 14.

Keep the cells of the base-3 grid whose digit vector has at most one coordinate equal to the middle digit 11; that is the DD-dimensional Menger analog. Let aD(L)a_D(L) count the cells of its level-LL approximation that meet the central diagonal hyperplane ixi=D(3L1)/2\sum_i x_i = D(3^L-1)/2.

Theorem. For every D2D \ge 2, aD(L)a_D(L) satisfies a linear recurrence with constant integer coefficients of order at most D/2\lceil D/2 \rceil, namely the one given by the characteristic polynomial of the D/2×D/2\lceil D/2 \rceil \times \lceil D/2 \rceil carry matrix Meven(D)M_{\mathrm{even}}^{(D)}.

Theorem. At every odd DD with D≢1(mod3)D \not\equiv 1 \pmod 3, the dominant root ρD\rho_D of that polynomial sits strictly above fD/3=2D1(D+2)/3f_D/3 = 2^{D-1}(D+2)/3: the counting exponent of the slice exceeds the solid's dimension minus one. The engine is an exact product formula, bD(L)=3Lmj(2cosθm,j)D1(D+2cosθm,j)b_D(L) = 3^{-L} \sum_m \prod_j (2\cos\theta_{m,j})^{D-1}(D + 2\cos\theta_{m,j}) over the 3-adic angle towers θm,j=2πm3j/3L\theta_{m,j} = 2\pi m 3^j/3^L, whose every term ends in the parity factor (1)D1(D1)(-1)^{D-1}(D-1); at odd DD the integrand is pointwise nonnegative and the census cannot fall below (fD/3)L(f_D/3)^L. The even half of the sign law, and the residue class D1(mod3)D \equiv 1 \pmod 3 beyond D=80D = 80, remained conjectural when this paper was written, and it records exactly why the even side is harder. The even half has since been proved, at base 3 and base 5, in slice-sign-even-half; the residue class is still open.

Theorem. Unconditionally, ρDfD/32(D1)/3|\rho_D - f_D/3| \le 2(D-1)/3: the slice exponent converges to the generic Marstrand-Mattila value log3fD1\log_3 f_D - 1 in every dimension, and only the side of the approach is still open. Exactly, 3ρD=fD+(1)D1(D1)(3pD1)3\rho_D = f_D + (-1)^{D-1}(D-1)(3p_D-1) with pDp_D the Perron carry vector's mass on carries divisible by 3, so the entire sign law is the parity-free statement pD>1/3p_D > 1/3.

The proof is three moves: the digit polynomial factors as PD(t)=(1+t2)D1(1+Dt+t2)P_D(t) = (1+t^2)^{D-1}(1+Dt+t^2), the carry map c(c+Ds)/3c \mapsto (c+D-s)/3 contracts onto {c(D1)/2}\{|c| \le \lfloor (D-1)/2 \rfloor\}, and the palindromic symmetry PD[s]=PD[2Ds]P_D[s] = P_D[2D-s] halves that set. Exactness of the order is verified, not proved: the exact rational Hankel determinant is nonzero for 2D242 \le D \le 24, starting 2,72,6336,1029600000,622720256400002, 72, -6336, -1029600000, -62272025640000. The script re-derives the D=3D = 3 matrix [[6,6],[1,3]][[6,6],[1,3]], its polynomial λ29λ+12\lambda^2 - 9\lambda + 12, and the census 1,6,42,306,2250,16578,1222021, 6, 42, 306, 2250, 16578, 122202 - which is A299916 - along with the D=4D = 4 ladder 6,132,1848,29040,441408,67721286, 132, 1848, 29040, 441408, 6772128 and the traces 32D213 \cdot 2^{D-2} - 1 and 3D2D33D \cdot 2^{D-3}.

  • Grew from the spectra page of the MrlyMath tree.
  • paper.pdf - the paper.
  • tectonic paper.tex rebuilds it; python3 scripts/verify.py re-checks every number; python3 scripts/figure.py redraws the bars.