# Sibling Census - Reads a MrlyMath automaton as a triple `(dim, mask, kind)`: the mask is a base-2 design at an odd side and level, centred with its centre popped, kind GENERAL is any Boolean rule of the centre and the mask cells, kind LIFE is outer-totalistic `B/S` over the mask count. - Dictionary: the 64 outer-totalistic elementary rules on the mask `[101]`, with rule 110 shown outside them; `bang dim 1, code 1` at side 3 as `[101]` and `bang dim 2, code 7` at side 3 popped as the 8-cell Moore mask. - Tower: the designs "at most one odd coordinate" (codes `3, 7, 23, 279`) and "not every coordinate odd" (codes `1, 7, 127, 32767`) at side 3, `dim 1..4`, their tile fills, their popped masks, and where the two masks split. - Decoupling: for every base-2 design at `dim 1, 2`, sides `3, 5, 7, 9`, levels `1..3`, the index of the lattice generated by the mask offsets, computed by an integer Hermite reduction; masks deduplicated; the interleaving identity run cell for cell on random rings for every decoupling mask at `dim 1`, random GENERAL rules up to 12 cells and random LIFE rules always. - Composites: all 65536 rows-then-columns composites of two elementary rules as 512-entry truth tables, their distinct count, outer-totalistic members with their `B/S` names and factor pairs, transpose and dihedral symmetry counts, and the search for `B3/S23`. - Cantor-Life: kind LIFE on the level-3 Cantor mask `+-5, +-7, +-11, +-13`; six named rules on rings of 1024 from soups at three densities, 2000 generations, with fates, final populations and count histograms; the Frobenius check that the nine-cell XOR kernel has 256th power 1 on that ring; every seed of width at most 14 under `B3/S23` on a constant-0 line to 256 generations, classified as death, still life, oscillator or mover by return up to translation. - Menger-Life: kind LIFE on the 20-cell Menger level-1 mask; the plane block under `B3/S23` checked against rule 90 along the normal; the 100 rules with `B, S` subsets of `{3,4,5,6}` of size 1 or 2 plus `B3/S23`, on a `32^3` torus from densities 0.15 and 0.3, 200 generations; 200 random `5^3` seeds per rule on a re-centred `24^3` field, exact as a constant-0 field while the pattern extent stays at most 22, 128 generations, with translation detection. - Products: `110.g` for six `g` on a `256^2` torus, 512 generations, density trace, churn and periodicity; every `3x3` seed under `110.110` on a `128^2` field, 96 generations, with the bounding box law asserted. - Structural laws are asserted and the study exits nonzero if one fails; headline lines are printed with the seed; nothing is written. ## RUN - `uv run python research/lab/py/sibling-census/sibling.py` - About a minute on one core; the largest array is the `33 MB` composite table; prints only. ## WITNESSES - Exactly 64 elementary rules are outer-totalistic on `[101]`; 110, 30, 184 are not, since `001 -> 1` and `100 -> 0` under 110. (Proved by the two neighbourhoods; Verified.) - "Not every coordinate odd" at side 3 is the `3^dim - 1` Moore neighbourhood at `dim 1..4`; "at most one odd coordinate" fills `2^(dim-1)(dim+2)`; as popped masks they agree at `dim 1, 2` and split at `dim 3` (20 against 26) and `dim 4` (48 against 80). (Verified at `dim 1..4`; proof on automata.md.) - The Cantor level-3 mask is `+-5, +-7, +-11, +-13`; the Menger level-1 mask is the 20 offsets in `{-1,0,1}^3` with at most one zero. (Verified.) - Over 195 distinct masks the lattice index is: `dim 1`: 16 of index 1, 11 of index 2, 1 empty; `dim 2`: 79 of index 1, 59 of index 2, 18 of index 4, 11 of rank below 2. (Verified.) - Cantor tower indices `1, 2, 1` at levels `1..3`; parity tile index 2 at sides 5, 9 and 1 at sides 3, 7; the diagonal 4-mask `bang dim 2, code 9` has index 2 and the von Neumann mask `bang dim 2, code 6` index 1. (Verified to side 9 and level 3; the gcd rule for every side and level is Proved on automata.md.) - Every decoupling mask at `dim 1` equals `index` interleaved copies of its rescaled mask under the same rule, 16 (mask, kind) pairs, 40 steps, cell for cell. (Verified; the decoupling lemma is Proved on automata.md.) - The 65536 composites give 32260 distinct 9-input rules; `B3/S23` occurs 0 times; 1036 pairs are outer-totalistic and realise exactly 10 life-like rules; 1080 pairs are transpose-symmetric, 1048 dihedral; rows-first equals columns-first for 2160 pairs. (Verified, exhaustive.) - The 10 life-like composites are the two constants, the centre and its negation, `AND9 = B/S8`, `NOR9 = B0/S`, `OR9 = B12345678/S012345678`, `NAND9 = B012345678/S01234567`, the nine-cell XOR `B1357/S02468` from `150.150` and `105.105`, and its negation `B02468/S1357`. (Verified.) - `f.204`, `f.170`, `f.240` are `f` on the middle, lower and upper row, and `f.51`, `f.85`, `f.15` their negations, for all 256 `f`. (Verified; proof on automata.md.) - Cantor-Life `B3/S23` from 8192 seeds of width at most 14: 6113 die, 2003 reach a still life, 76 an oscillator with periods in `{2, 3, 4, 6}`, none moves, none is undecided at 256 generations; smallest still life `{0, 5, 7, 12}`, smallest oscillator `{0, 1, 2, 3, 7, 8}` of period 2. (Verified; the absence of a mover is a negative over width 14, not a proof.) - Cantor-Life soups of 1024 cells under `B3/S23` die or freeze below 4 percent density, one run of period 6; `B1357/S02468` has a period that divides 256 on the ring 1024, since the kernel `K = 1 + sum x^o` has `K^256 = 1` by Frobenius, and equals 256 on generic soups because `K^128`, of support `{0, 128, 384, 640, 896}`, is not the identity; every soup run returns at exactly 256. (Verified; proof on automata.md.) - Menger-Life `B3/S23` from a plane `2x2` block is a rule 90 stack of blocks along the normal, population `4 * 2^popcount(t)`, checked to `t = 8`. (Verified to `t = 8`; proof on automata.md.) - Of 101 Menger rules times 4 soups, 310 runs are still active at 200 generations with density between 0.186 and 0.305, 77 die, 14 fix, 3 are periodic, none exceeds 0.4; the 76 rules active in all four runs span 0.193 to 0.305; 22 rules are quiet in all four runs; `B3/S23` holds density 0.20. (Verified.) - No mover appears for any of the 101 rules from 200 seeds in a `5^3` box; the 20200 seed fates are 7957 deaths, 12131 growing, 69 still lifes, 38 oscillators, 5 undecided; `B3/S23` grows from all 200. (Verified negative.) - `110.g` soups climb from density 0.30 to about 0.57 for `g` in `{204, 170, 110}` and to 0.41, 0.45, 0.46 for `54, 30, 90`, churn between 0.42 and 0.58, none periodic by 512 generations. (Verified.) - Under `110.110` the bounding box of every one of the 511 `3x3` seeds grows without bound: the upper-left corner moves by `(-1, -1)` each generation and the lower-right corner is fixed, checked to `t = 96`, with the proof for every finite pattern on automata.md; population growth is Verified only, running from 2704 to 5794 at `t = 96`. (Verified.)