research/lab/py/sibling-census

0 directories and 2 files in research/lab/py/sibling-census.

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.)