Companion to the torus tutorial
Symmetric patterns on the 3×3 torus
Colour each of the nine cells 0 or 1. There are 512 patterns, and only 26 of them have any translational symmetry at all. Here is every one, sorted by its stabilizer and then by orbit.
The funnel
- 512binary patterns
- 26with nontrivial stabilizer
- 10orbits among those
- 5nontrivial stabilizers
- 2types up to GL(2,𝔽₃)
The other 486 patterns have trivial stabilizer — 95% of them — falling into 54 orbits of size 9. Generic patterns have no symmetry, which is why searching over patterns is a poor way to find groups.
The five rows
Filled cells are 1, outlined cells are 0. Because the ambient group is abelian, every pattern in an orbit has exactly the same stabilizer, not merely a conjugate one, so each row below is a union of whole orbits.
K = A
- Stabilizer
- Generated by
X, Y. Every translation fixes the pattern, so the pattern is constant. - As an equivalence relation
- Two cells are equivalent when
nothing is distinguishedagrees — one coset — the whole torus. - Orbits
- The ambient group has order 9 and the stabilizer has order 9, so every orbit has size 9 / 9 = 1. The 2 patterns fall into 2 orbits; patterns in one orbit are translates of each other and share this stabilizer exactly.
orbit 1 · size 1
orbit 2 · size 1
K = ⟨Y⟩ — rows
- Stabilizer
- Generated by
Y = (0,1), the column shift. Sliding along a row changes nothing, so each row is uniform. - As an equivalence relation
- Two cells are equivalent when
a mod 3 — the row indexagrees — three cosets — the three rows. - Orbits
- The ambient group has order 9 and the stabilizer has order 3, so every orbit has size 9 / 3 = 3. The 6 patterns fall into 2 orbits; patterns in one orbit are translates of each other and share this stabilizer exactly.
orbit 1 · size 3
orbit 2 · size 3
K = ⟨X⟩ — columns
- Stabilizer
- Generated by
X = (1,0), the row shift. Sliding down a column changes nothing, so each column is uniform. - As an equivalence relation
- Two cells are equivalent when
b mod 3 — the column indexagrees — three cosets — the three columns. - Orbits
- The ambient group has order 9 and the stabilizer has order 3, so every orbit has size 9 / 3 = 3. The 6 patterns fall into 2 orbits; patterns in one orbit are translates of each other and share this stabilizer exactly.
orbit 1 · size 3
orbit 2 · size 3
K = ⟨XY⟩ — diagonal
- Stabilizer
- Generated by
XY = (1,1). Stepping down-and-right changes nothing; the stripes run diagonally. - As an equivalence relation
- Two cells are equivalent when
(b − a) mod 3agrees — three cosets — three diagonal stripes. - Orbits
- The ambient group has order 9 and the stabilizer has order 3, so every orbit has size 9 / 3 = 3. The 6 patterns fall into 2 orbits; patterns in one orbit are translates of each other and share this stabilizer exactly.
orbit 1 · size 3
orbit 2 · size 3
K = ⟨XY²⟩ — anti-diagonal
- Stabilizer
- Generated by
XY² = (1,2). Stepping down-and-left changes nothing; the stripes lean the other way. - As an equivalence relation
- Two cells are equivalent when
(a + b) mod 3agrees — three cosets — three anti-diagonal stripes. - Orbits
- The ambient group has order 9 and the stabilizer has order 3, so every orbit has size 9 / 3 = 3. The 6 patterns fall into 2 orbits; patterns in one orbit are translates of each other and share this stabilizer exactly.
orbit 1 · size 3
orbit 2 · size 3
Summary
| stabilizer | |K| | index | patterns | orbits | orbit size |
|---|---|---|---|---|---|
K = A | 9 | 1 | 2 | 2 | 1 |
K = ⟨Y⟩ — rows | 3 | 3 | 6 | 2 | 3 |
K = ⟨X⟩ — columns | 3 | 3 | 6 | 2 | 3 |
K = ⟨XY⟩ — diagonal | 3 | 3 | 6 | 2 | 3 |
K = ⟨XY²⟩ — anti-diagonal | 3 | 3 | 6 | 2 | 3 |
K = {0} (not shown) | 1 | 9 | 486 | 54 | 9 |
Orbit sizes obey orbit–stabilizer exactly: |orbit| = 9 / |K|. Summing
2×1 + 8×3 + 54×9 = 512 recovers every pattern, and
2 + 8 + 54 = 64 recovers the Burnside count of patterns up to translation.
Counts for larger alphabets
Nothing above is special to two values. Writing q for the alphabet size,
Möbius inversion over the subgroup lattice
{0} < four lines < A gives closed forms, since a pattern with
stabilizer containing K is a function on the [A:K] cosets.
| q | K = A (q) |
each line (q³ − q) | all four lines | trivial (q⁹ − 4q³ + 3q) |
total (q⁹) |
|---|---|---|---|---|---|
| 2 | 2 | 6 | 24 | 486 | 512 |
| 3 | 3 | 24 | 96 | 19584 | 19683 |
| 4 | 4 | 60 | 240 | 261900 | 262144 |
The q³ − q reads directly: a line-stabilized pattern is a function
on three cosets, so q³ choices, minus the q constant ones
whose stabilizer is really all of A.
Six subgroups, three types
The four line rows above are one GL(2,𝔽₃) orbit — one line
per slope 0, 1, 2, ∞ — so as types there are only two
nontrivial cases, the constant pattern and the striped one. The four rows look different
because a shear relates them, and a shear is an automorphism of the torus but not a
symmetry of the square grid. The
torus tutorial names all six subgroups three ways:
as stabilizers, by generators, and in Chaim Goodman-Strauss’s colour notation.
Generated by scripts/generate_torus_patterns.py.