README.md

6.1 kB · markdown

Kernel Waves

  • Asks whether the wavelength of a Larger-than-Life still is set by the mask or by the rule, and whether it is readable off the mask's Fourier transform alone.
  • A design mask is the Kronecker power at level level of the odd-side base-2 tile a code names, side^level cells across, centre popped, built here as the crate builds it: corner i of the tile carries residue ((i / 2) mod 2, i mod 2), a tile cell is filled when its residue corner is a set bit of the code, and np.kron deepens the tile; the side-3 tiles are code 7 the full block minus its centre, code 6 the von Neumann cross, code 9 the diagonals, and the study asserts the side-3 code-7 tile has 8 cells and its level-2 mask is 9 x 9 with 64 ones.
  • The box mask at radius r is the (2r+1)^2 block minus its centre, m = 120 at r = 5 and 728 at r = 13.
  • A rule is a birth interval and a survive interval as fractions of the mask budget m: a dead cell with count/m in [b_lo, b_hi] is born, a live cell with count/m in [s_lo, s_hi] survives, the integer thresholds being ceil(lo m) and floor(hi m); the count is the FFT convolution of the 0/1 grid by the mask on the torus.
  • The three named rules are Bugs B[34/120, 45/120] S[34/120, 58/120], wide survive with Bugs birth and S[0.28, 0.60], and narrow birth B[0.30, 0.34] with Bugs survive; the rule grid is every product of birth lower {0.20, 0.30, 0.35}, birth upper {0.35, 0.40, 0.45, 0.50, 0.55}, survive lower {0.00, 0.30} and survive upper {0.45, 0.50, 0.55, 0.60, 0.70, 0.80}, 180 rules, run under two seeds.
  • The state after 64 steps is read through its power spectrum on integer rings k = round|xi|, k = 1..128: k* is the ring of highest mean power, the wavelength is 256/k*, the share is the ring's fraction of the power off DC, the gain is the ring's mean power over the mean of all rings, which a white soup holds near 1.3.
  • Classes: dead is density below 0.02, full above 0.98, active is any change at the last step, flat is a still of gain below 3, coarse is a still with 256/k* above twice the side, ring is every other still; the wavelength laws are tested on ring stills only and every exclusion is printed.
  • The mask alone is read through the ring mean A(k) of |DFT|, with k_min its first minimum past DC, k_2 the first maximum past k_min, k_min2 the next minimum and the lobe the rings between the minima holding at least half of A(k_2); and through the ring mean g(k) of the signed DFT, real because every mask here is centrally symmetric, with k_neg its most negative ring and the negative band the run of negative rings around k_neg.
  • Riesz product. With P(theta) = sum over tile cells e of exp(-2 pi i theta . e), e the offset from the tile centre, the DFT of the popped mask at level level and frequency xi on an N torus is prod over j = 0..level-1 of P(side^j xi / N) minus the tile's centre value. Proof: every cell of the Kronecker power is sum over j of d_j side^j with each digit cell d_j ranging independently over the tile's filled cells, and the mask centre is the same sum with every digit at the tile centre, so the offsets are sum over j of (d_j - c) side^j, the exponential sum over the product set factorises into the tile sums at the scaled frequencies side^j xi, and popping the centre subtracts its own term, 1 when the tile fills its centre (code 9) and 0 when it does not (codes 7 and 6). The study checks it at codes 7, 6, 9 and levels 2, 3, 4 over all 256 x 256 frequencies to 1e-9.
  • Laws, each printed Verified when it holds at every ring still and Refuted with its first witness and its failure count otherwise: k* in the half-height lobe; k* nearer k_2 than k_min; k* within one ring of k_2; k* within one ring of k_min; g(k*) < 0; k* within one ring of k_neg; k* in the negative band; one k* per mask across the rules. A per-mask table repeats the three sharpest laws with the failing k* values.

RUN

  • uv run python research/lab/py/kernel-waves/waves.py from the repo root
  • Domain: torus 256 x 256, soup density 0.5, seeds 20260 and 4093 printed, 64 steps, 7 masks, 3 named rules at the first seed and 180 grid rules at both seeds, 2520 grid runs; about 75 seconds, prints only, exits nonzero if the Riesz check fails.

WITNESSES

  • automata.md the waves: the Riesz product holds to 2.5e-12 at every one of the 9 code and level pairs, the largest error at code 9 level 4; the minus term is the tile centre, 1 for code 9 and 0 for codes 7 and 6. (Proved; Verified.)
  • automata.md the waves: under the three named rules from the density-0.5 soup no mask reaches a ring still, 21 of 21 cells; 11 die, 6 freeze as a flat soup at density 0.49 to 0.50, 4 stay active, the wide-survive rule on the masks of 512 ones or more freezes the soup unchanged. (Verified.)
  • automata.md the waves: over the rule grid the census reads 176 ring stills of 2520 runs, 571 dead, 0 full, 950 active, 737 flat, 86 coarse. (Verified.)
  • automata.md the waves: k* sits within one ring of k_min in 25 of 176 ring stills and 21 of those are on the under-resolved side-81 mask where k_min = 3 and k_2 = 5; the box r = 5 holds 25 ring stills at k* = 30..36 against k_min = 24 and k_2 = 32, wavelength 7.1 to 8.5 cells against a mask width of 11. (Refuted for k* = k_min.)
  • automata.md the waves: k* lies in the mask's negative band in 173 of 176 ring stills and in every one of the 130 on box r = 5, code 7 levels 2 and 3, and code 9 level 3; the three witnesses are box r = 13 at k* = 10, its k_min, code 7 level 4 at k* = 2, and code 6 level 3 at k* = 8. (Refuted as a universal law; Verified on those four masks.)
  • automata.md the waves: k*/k_2 runs 0.94 to 1.12 on box r = 5, 0.71 to 1.07 on box r = 13, 0.97 to 1.10 on code 7 level 2, 0.77 to 1.08 on level 3, 0.92 to 1.17 on code 9 level 3; one mask's k* spreads across the rules, box r = 5 from 30 to 36. (Verified; Refuted for one k* per mask.)
  • automata.md the waves: the carpet family's median wavelength over side reads 0.729 at level 2 and 0.729 at level 3 against 256/k_2/side = 0.729 at both, and 0.790 at level 4 against 0.632 where the torus holds only 3.2 mask widths. (Verified.)