The classification

Seventeen, without a picture

Every other count of the plane groups has a plane in it — a pattern generated, a domain folded, an orbifold's curvature spent. The same seventeen come out of pure algebra: attach translations to a point group, keep the assignments that close, throw away the ones that differ only by where the origin was put, and add up over the thirteen arithmetic classes.

Assumes Thirteen ways to hold a lattice and The half of a translation that is not a choice.

There are four arguments in this collection that end in seventeen. The classification proof cuts on rotation orders and mirror positions and works through the cases. The orbifold argument gives every feature of a folded pattern a price and finds the ways of spending exactly two. The round trip generates a pattern from a group and hands the bare points to a detector. And a fourth, which is the subject here, has no plane in it at all: no lattice is drawn, no orbit is generated, no point is placed anywhere — none of the machinery the plates are made of.

Only a finite group of integer matrices, the module it acts on, and the arithmetic of extensions.

The only condition there is. Doing g and then h must be the same as doing hg, and following the translations round the square gives the condition every assignment has to satisfy: the translation attached to a product is the product's own translation plus the image of the other one. Everything about which plane groups exist follows from that single equation and from the fact that changing the origin changes the translations without changing the group.
Fig. 1 The whole of the condition. Doing g and then h has to be the same as doing hg, and following the translations round the square gives the equation every assignment must satisfy. Everything below is that equation, solved thirteen times.

What is being counted

A plane group G contains its translations. They form a lattice L, isomorphic to the integers in two directions, and they are a normal subgroup: conjugating a translation by any symmetry gives a translation. The quotient G/L is finite — it is the point group, acting on L as a group of integer matrices, and there are thirteen such actions up to a change of basis.

So every plane group is an extension

0LGP1,0 \to L \to G \to P \to 1,

and building one means choosing, for each element g of P, a translation t(g) to attach to it. The choice is not free. Composing twice, both ways round, forces

t(gh)=M(h)t(g)+t(h),t(gh) = M(h)\,t(g) + t(h),

modulo the lattice — the cocycle condition, which is the only condition there is. And two choices describe the same group when they differ by a change of origin: shifting by s replaces t(g) by t(g) + (M(g) − I)s. Those differences are the coboundaries.

The classification is then one sum: for each of the thirteen classes, count the assignments satisfying the condition, divide out the ones that differ by an origin, quotient by the changes of basis that are relabellings rather than differences, and add up.

12 shifts, one group. What moving the origin does to the translations attached to each operation. Every row is a different origin and every row describes the same group: these assignments are the coboundaries, they are the differences that do not count, and the classification is what is left after they are divided out. A count of assignments that forgot them would report a great many more than seventeen groups.
Fig. 2 What moving the origin does to the translations attached to a mirror. Every row is a different origin and every row describes the same group. These are the differences that do not count, and a census of assignments that forgot to divide them out would report hundreds of plane groups rather than seventeen — the first thing to get right, and the easiest to get wrong.

The answer, class by class

18 extension classes, 17 groups. Each of the thirteen arithmetic classes with the number of ways translations may be attached to it — its cohomology — the shape of that group, and how many distinct plane groups the classes come to once the changes of basis that are mere relabellings are quotiented out. The two columns differ in exactly one row, 2mmp, where four extension classes are three groups because two of them are the same group with the axes swapped. No lattice is drawn anywhere in this computation.
Fig. 3 The thirteen arithmetic classes with the number of extension classes each admits, the shape of that group, and the number of distinct plane groups it comes to. Ten of the thirteen admit only one extension — the group with all its translations at zero, and nothing else — and the interesting rows are the three that do not.

Ten of the thirteen classes have nothing to choose: every consistent assignment of translations is a coboundary, so the only group in the class is the one with no intrinsic translations at all. That is where p1, p2, p3, p4, p6, cm, cmm, p3m1, p31m and p6m come from, and it says something worth noticing — most of the seventeen are not interesting extensions. They are the point group sitting on its lattice with nothing added.

Three classes have a genuine choice, and they produce the seven remaining groups:

  • m on a rectangular lattice admits two: the mirror with no translation, and the mirror with half a cell along itself. Those are pm and pg, and the second is the glide.
  • 4mm on a square lattice admits two: p4m and p4g.
  • 2mm on a rectangular lattice admits four, of which more below.

Adding the columns gives eighteen extension classes and seventeen groups, and the discrepancy is one class.

The mirror class, worked through by hand

One class is short enough to do completely, and doing it once makes the machinery concrete.

Take the point group with two elements — the identity and a mirror m across the b axis — acting on a rectangular lattice. The identity’s translation is zero, forced. The mirror’s translation is a pair (a, b) to be chosen. Composing the mirror with itself gives the identity, so the cocycle condition reads

0=M(m)t(m)+t(m)=(a,b)+(a,b)=(2a,0),0 = M(m)\,t(m) + t(m) = (a, -b) + (a, b) = (2a, 0),

modulo the lattice — which says 2a is a whole number and nothing at all about b. So a is nought or a half, and b is free.

Now the coboundaries. Shifting the origin by s changes the mirror’s translation by (M − I)s = (0, −2s₂), which reaches every value of b and no value of a at all. So b is entirely removed by a change of origin, and a is not.

Two classes: a = 0 and a = ½. The first is pm, a plain mirror. The second is pg, whose mirror slides half a cell along itself and is a glide. That the translation along the mirror survives and the translation across it does not is the whole content of the split between intrinsic and locative parts, arriving here as a statement about which coordinates the coboundaries reach.

The wallpaper group pg. A pattern with the symmetry of pg, generated by applying the group's 2 operations to an asymmetric motif and repeating across the lattice. The symmetries of the result were then found independently and match the group exactly.
Fig. 4 pg, the second of the two classes worked out above: no mirror anywhere in the pattern, and a pair of glide lines instead. The half-cell in the glide is the a of the calculation, and it is there because no origin removes it — which is a statement about the coboundaries rather than about the drawing.

The one place the two counts differ

The rectangular class 2mm has cohomology (ℤ/2)², which is four extension classes. The four are pmm, with both mirrors clean; pgg, with both replaced by glides; and two with one of each — a mirror along a and a glide along b, or the other way round.

Those last two are the same group. The change of basis exchanging the two axes normalises the point group, so it acts on the extensions, and it swaps exactly that pair. Its action was computed rather than assumed: the conjugation is applied to each cocycle, the image is identified with the class it lands in, and the orbits are counted.

Four extension classes, three groups. The rectangular class 2mm has four extension classes and three groups. The change of basis that exchanges the two axes normalises the point group, so it acts on the extensions — and it exchanges the two that put a glide on one axis and a mirror on the other. Those two are one group written twice. It is the only place in the plane where the count of extensions and the count of groups differ, and the normaliser action was computed rather than assumed in order to find it.
Fig. 5 The four extension classes of the rectangular 2mm, and the one merge. Exchanging the axes of the lattice is a change of description rather than a change of group, and it carries the class with a mirror along a and a glide along b onto the class with a glide along a and a mirror along b. Four classes, three groups, and this is the only such merge in the plane.

Every other class has a cohomology on which the normaliser acts trivially. There is no second merge anywhere among the thirteen, and it takes a computation to know that rather than a glance — which is precisely why the action is computed for all of them and not only where trouble is expected.

The class that most looks as though it should merge is the square one, and it is worth saying why it does not. 4mm on a square lattice has two extension classes, p4m and p4g, and the change of basis exchanging the two axes is in the normaliser there as well — a square lattice’s axes are as swappable as a rectangular one’s. The difference is what the swap does. In the rectangular class the two axes carry independent choices, so exchanging them exchanges two different cocycles; in the square class the four-fold rotation already identifies the axes with one another, so a cocycle assigning a glide to one has assigned it to both, and the swap moves nothing. A merge needs a normaliser element and a pair for it to exchange, and the square class supplies the first and not the second.

That is the shape of the whole quotient, and it is why the computation is short: the normaliser is large in every class, and it acts trivially in twelve of thirteen because the point group has usually already done the identifying.

What “the same group written twice” means here

The distinction between eighteen and seventeen is the distinction between two questions, and both are legitimate.

How many inequivalent ways are there of attaching translations to this point group? — eighteen, over the thirteen classes.

How many plane groups are there? — seventeen, because the classification does not distinguish a group from the same group on relabelled axes.

The second question has the extra quotient in it, and the quotient is by the normaliser of the point group inside the group of lattice-preserving changes of basis. This is the same machinery that gives two hundred and thirty rather than two hundred and nineteen in three dimensions — only there the quotient is taken by orientation-preserving changes alone, and eleven pairs survive it that would otherwise merge. The plane’s version of that story is a single pair, and it merges.

What the grid is doing, and why it is not deciding anything

The translations are searched on a grid: halves, thirds, quarters, sixths and their combinations, up to a stated denominator. That is the one approximation in the computation, and a search on a grid is exactly the kind of thing that can quietly decide an answer.

So it is refined rather than trusted.

2mmp: the same answer at every resolution. The number of extension classes of 2mmp, computed on grids of translations from quarters down to twenty-fourths. A search on a grid is the one approximation in this computation, and the way to find out whether it is deciding the answer is to refine it: a count that grew would be a count reporting that the true group is larger than the search can see. It does not grow.
Fig. 6 The number of extension classes of the rectangular 2mm, computed on grids of translations from quarters down to twenty-fourths. A count that grew with the grid would be a count reporting that the true group is larger than the search can see. It does not grow — and the same test on the hexagonal classes, where thirds and sixths are needed, gives the same flat answer.

There is a second place where a grid must be handled carefully and it is much less obvious. The coefficients of the cohomology are the rational points modulo the integers, and that group is divisible: every element is twice some other element, three times another, and so on. A grid is not divisible. So an origin shift restricted to the same grid as the translations reaches only part of what it should, and the quotient comes out too large.

Computed that way, the two-fold class reports four classes where it has one, and every count on the page is wrong in the same direction. The fix is to let the origin run on a finer grid and keep the shifts whose effect lands back on the coarse one, which is the intersection the quotient actually needs. The failure is instructive because nothing about it looks like a bug: the numbers are plausible, they are stable under refining the translation grid, and only the total gives it away.

What the round trip has to say about it

The two routes to seventeen are independent, and the second is used to check the first.

Every cocycle that survives the quotient is turned back into a set of operations — the point group’s matrices with the cocycle’s translations attached — and compared with each of the seventeen as this collection stores them, allowing a change of basis and a shift of origin. Every class is named, and the names come out as the classification says: the mirror class gives pm and pg, the 2mm class gives pmm, pmg and pgg, the 4mm class gives p4m and p4g.

Thirteen comparisons, thirteen agreements. The same seventeen groups sorted twice. The middle column is the extension computation's answer: for each arithmetic class, every cocycle surviving the quotient is turned back into a set of operations — the class's matrices with the cocycle's translations attached — and matched against the seventeen as this collection stores them, allowing a change of basis and a shift of origin. The right column never looks at a cocycle: it takes each of the seventeen, reads off the linear parts of its own operations, and finds which of the thirteen classes that set of matrices is conjugate to. The two routes share the list of thirteen classes and nothing else, and the figure does not appear unless they agree row by row. The agreement is not vacuous either: four classes hold more than one group, the largest holds three, and a sort that put everything in one row would fail.
Fig. 7 The two sorts set against each other, one row per arithmetic class. The middle column is what the extensions produce — a cocycle turned back into operations and matched against the seventeen up to a change of basis and a shift of origin. The right column never looks at a cocycle: it takes each of the seventeen, reads the linear parts of its own operations, and finds which class those matrices are conjugate to. Thirteen rows, and the figure does not appear unless every one of them agrees.

Separately, the seventeen are sorted into arithmetic classes by their own point groups, and the number in each class is compared with the number of extensions the class was found to admit. Thirteen comparisons, thirteen agreements. Two routes that share nothing but a list of thirteen matrix groups, arriving at the same distribution.

Thirteen ways to hold a lattice. Every finite group of integer matrices in two dimensions, up to a change of integer basis: 13 of them. Ten different abstract groups appear, and three of the ten hold a lattice in two inequivalent ways — a mirror along an axis or along a diagonal, and the same for 2mm and for 3m. The enumeration is a search: every subgroup of the two maximal holohedries, merged by conjugacy under integer matrices of determinant ±1, with the answer checked for not depending on how wide the search was.
Fig. 8 The thirteen arithmetic classes themselves, which are the input to everything above. They are the finite subgroups of the two-by-two integer matrices, up to conjugacy in that group rather than in the rotations — which is why there are thirteen of them and not the ten of the geometric classes.

The cohomology as a group, not a count

The extensions of one class do not merely have a number; they have a group structure, and the shape of that group says something the number does not.

Adding two cocycles gives a cocycle, and adding a coboundary changes nothing, so the classes form an abelian group. For the mirror class it is ℤ/2 — two elements, and the non-trivial one is its own inverse, which is the statement that doing pg’s half-cell slide twice gives a whole cell. For the rectangular 2mm class it is (ℤ/2)², two independent halves, one per axis, which is why the four groups are exactly the four ways of choosing whether each axis carries a glide.

A cyclic group of order four would have meant something different — a single translation of a quarter, doubling to a half and only closing at the fourth — and that shape occurs in three dimensions, in the four-fold screws, but nowhere in the plane. The distinction is invisible in a count of four and immediate in the group.

64 shifts, one group. What moving the origin does to the translations attached to each operation. Every row is a different origin and every row describes the same group: these assignments are the coboundaries, they are the differences that do not count, and the classification is what is left after they are divided out. A count of assignments that forgot them would report a great many more than seventeen groups.
Fig. 9 The origin shifts of the rectangular 2mm class, at a coarser grid, with what each does to the translations attached to four operations. The two-fold rotation’s translation is reached by every shift and is therefore always removable; the mirrors’ translations along themselves are not. Which entries a shift can reach is what decides the size of the answer, and here it leaves two independent halves.

Where the exactness stops

Three limits, and the first is about what the computation is entitled to say.

Nothing here proves the classification. It computes it, on a stated grid, for the thirteen classes supplied to it. That the list of arithmetic classes is complete is a separate argument and a real one; this computation would run just as happily on twelve of them and report a smaller number with no complaint.

The normaliser search is bounded. The changes of basis are drawn from the integer matrices with small entries, which is enough for the plane and is a bound rather than a proof. A merge requiring a matrix with an entry of five would be missed, and the honest statement is that none was found among the matrices searched.

And nothing here says what any of the groups look like. The whole point is that the classification survives having its pictures taken away — but a reader who wants to know what p4g is will not find it in a cocycle. That is what the plates are for, and the two halves of the subject are complementary rather than competing.

A third description, for the same reason

It is worth naming one more, because two routes agreeing is a coincidence and three is a fact about the plane.

A presentation forgets the lattice and keeps the letters. Written as generators and relations, a plane group is two to four letters and a handful of relators, and abelianising it — throwing away the order in which the letters are multiplied — leaves an abelian group that can be computed from the relator matrix by an integer normal form. That computation has no lattice in it, no cocycle, and no cell.

It separates pm from pg, which is the pair this essay derived above from a coboundary calculation: pm’s abelianisation is ℤ ⊕ ℤ₂ ⊕ ℤ₂ and pg’s is ℤ ⊕ ℤ₂, so the two are told apart by an invariant that never mentions a mirror. What it does not do is separate everything. Only twelve different abelian groups come back from the seventeen — p2, pmg, cmm and p4m all abelianise to ℤ₂ ⊕ ℤ₂ ⊕ ℤ₂ — so the presentation route is a genuinely independent description and a strictly coarser one.

That is the honest shape of the comparison, and it is why the cocycle route is worth its length. Patterns, extensions and presentations describe one classification, the first two of them completely and the third not; and the number seventeen appearing in machinery this different is what makes it a fact about the plane rather than about a method.

Who did this, and when

The cohomological description of crystallographic groups is twentieth-century algebra applied to a nineteenth-century classification. Fedorov and Schoenflies had the plane groups by 1891 and the space groups shortly after, by case analysis. Zassenhaus gave the algorithm that turns the classification into a finite computation in 1948 — enumerate the arithmetic classes, then the extensions of each — and it is his procedure that produced the higher-dimensional counts: four thousand seven hundred and eighty-three in four dimensions, computed by machine in 1978.

The language of cocycles and coboundaries came from topology by way of Eilenberg and Mac Lane in the 1940s. It is worth being clear that it adds no facts here: the arithmetic is what Zassenhaus was doing either way. What it adds is that the object being counted has a name, a group structure of its own, and a place in a subject where the same construction counts other things entirely.

4mmp: the same answer at every resolution. The number of extension classes of 4mmp, computed on grids of translations from quarters down to twenty-fourths. A search on a grid is the one approximation in this computation, and the way to find out whether it is deciding the answer is to refine it: a count that grew would be a count reporting that the true group is larger than the search can see. It does not grow.
Fig. 10 The square class 4mm, tested the same way, where the answer is two — p4m and p4g — at every resolution the search was run at. The two differ by a translation of half a cell along the diagonal attached to the mirror, and the difference is invisible in the point group: both are 4mm acting on a square lattice, and only the extension separates them.

Why a grid of that denominator is enough

The translations are searched on a grid, and a grid search over a continuum needs an argument rather than a refinement. There is one, it is short, and it turns the computation from a plausible sweep into a bounded enumeration.

The cocycles form an abelian group and so does the quotient by the coboundaries. For a finite group P acting on a module, the order of P annihilates that quotient: adding any cohomology class to itself |P| times gives zero. So every extension class is killed by multiplication by |P|, which means every one of them is represented by translations whose coordinates are multiples of 1/|P|.

That is the bound the grid needs. A point group of order four cannot produce an extension needing a translation of a fifth or a third; the only fractions available are quarters and halves. A grid of denominator |P| therefore misses nothing, and refining it further can only reproduce the same classes — which is exactly what the figure showing several grid resolutions reports, and the reason the agreement there is a check rather than a coincidence.

It also explains a feature of the seventeen that otherwise looks like a small mercy. Every translation appearing in any plane group is a half, a third, a quarter or a sixth of a lattice vector, and nothing finer occurs anywhere. That is not an observation about the list; it is the annihilation bound together with the orders a lattice permits, and the two together say in advance which denominators can appear before a single group is constructed.

The same machine, one dimension up

The argument on this page is stated for the plane and it mentions the plane nowhere. Run it in three dimensions and it produces the two hundred and thirty, by the identical steps.

The inputs change and the method does not: instead of thirteen arithmetic classes there are seventy-three, each a finite group of three-by-three integer matrices acting on a lattice, and for each one the cocycles are enumerated and quotiented by the coboundaries and by the normaliser. The sum over the seventy-three is two hundred and thirty. No pictures anywhere, and no need for the three-dimensional intuition that the plane case was still available to.

That is the property that makes the approach worth having, because it keeps working where intuition stops. The four-dimensional space groups — 4,783 of them — were computed this way in the 1970s, by an algorithm running the same three steps over the four-dimensional arithmetic classes, and there is no other way anybody has found to get them. The enumeration is not a check on a known answer there; it is the answer, and the confidence in it rests on the algorithm having reproduced the seventeen and the two hundred and thirty first.

The merge this page found in the plane is also the thing that gets harder. Deciding when two extension classes give the same group means computing a normaliser action, and in the plane there is exactly one merge across all thirteen classes. Higher up the merges are numerous and are where the arithmetic is delicate — which is the same statement as the observation that two hundred and thirty against two hundred and nineteen is a question about which conjugations are allowed rather than about which groups exist.

Where the ladder goes next

The extension count is a machine that runs in any dimension, and the interesting question is what it does when the answer is not already known. The next rung is the same computation applied where it is not a check but a prediction — and the rung below it, so to speak, is the concrete version for a single class, where the sixteen candidate assignments and the ten groups they come to are written out one at a time.

The other direction is about what the count means. Two extension classes are different groups; two groups can be abstractly isomorphic without being the same plane group — or so it would seem, and it turns out they cannot be, which is a theorem about crystallographic groups rather than about groups.

That is also the reason the plane case is worth doing after the answer is known. A method whose only test is a computation nobody can check is not a method, and the seventeen are the one case where every step can be verified against a list arrived at four other ways.

What this makes readable

Essays that name this one as a prerequisite.

Named alongside this one

Essays reaching for the same objects. Nobody chose these; they are what the concept index makes visible.

What links here

The 8 essays that link to this one and share the most of its objects, of 13 that link here.

The objects this essay names

Each one links to every other essay that touches it.

Arithmetic crystal classClassificationCoboundaryCocycleGroup extensionNormaliserOrigin shift