Crystallographers use group theory in order to get their paws on the (global) symmetries of crystals. Most of the time, they look at groups of “isometries”: if **R**^{d} is *d*-dimensional space, then an *isometry* on **R**^{d} is a function f : **R**^{d} → **R**^{d} such that for any **x**, **y** ∈ **R**^{d}, |f(**y**) – f(**x**)| = |**y** – **x**|. Since the composition of two isometries is an isometry, and the inverse of an isometry is an isometry, and the identity is an isometry, the isometries on **R**^{d} form a group.

We would like to have formulas for isometries, and it is an exercise in linear algebra that for every isometry f on **R**^{d}, there is a unique vector **m** and a unique matrix *M* such that for every **x** ∈ **R**^{d}, f(**x**) = **m** + *M***x** (such a function is called *affine*). There are no restrictions on **m**, but there are restrictions on *M*.

Recall that a *basis* of **R**^{d} is a set of nonzero vectors {**b**_{1}, …, **b**_{d}} from **R**^{d} such that every vector **x** ∈ **R**^{d} may be __uniquely__ expressed as a linear combination of **b**_{1}, …, **b**_{d}, i.e., in the form **x** = a_{1}**b**_{1} + … + a_{d}**b**_{d}, where a_{1}, …, a_{d} are real numbers. A basis is *orthogonal* if the vectors in it are mutually perpendicular, i.e., for any *i*, *j*, if *i* ≠ *j* then **b**_{i} ⋅ **b**_{j} = 0. An orthogonal basis is *orthonormal* if every vector in it is of norm 1.

A matrix is *orthogonal* if its columns form an orthonormal basis, or, equivalently, its rows form an orthonormal basis. Orthogonal matrices have all kinds of nice properties. The product of two orthogonal matrices is an orthogonal matrix, and the inverse of an orthogonal matrix is an orthogonal matrix: since matrix multiplication is associative, the orthogonal matrices form a group, often called the *orthogonal group* of dimension *d*. In addition, the determinant of an orthogonal matrix is either 1 or -1, and the inverse of an orthogonal matrix is its transpose (the transpose of a matrix is the result of reflecting it across its main diagonal, so that the *i*, *j*-entry of the transpose is the *i*, *j*-entry of the original matrix: a_{i,j}^{t} = a_{j,i}).

So here we have it: an affine function f(**x**) = **m** + *M***x** is an isometry if and only if *M* is orthogonal.

There are several ways to enumerate all the kinds of isometries on **R**^{3}. Yale uses a geometric construction while Giacovazzo uses algebraic machinery. Let’s follow Yale’s enumeration since this lets us look at geometry.: what Yale did was to look at *fixed points*: recall that a fixed point of a function f : **R**^{d} → **R**^{d} is a vector **x** such that f(**x**) = **x**.

We need a notion. An *affine space* or *affine flat* in **R**^{3} is a point, a line, a plane, or the entire space. It is an exercise in linear algebra to prove that for any affine function from **R**^{d} to **R**^{d}, the set of its fixed points forms an affine space. We use this fact to classify the isometries of **R**^{3}. But first, the main characters (see the figure below).

- Given a plane, a reflection across that plane is an isometry.
- Given two planes, if they are parallel, then the composition of the two reflections is a translation; if they are not parallel, then the composition is a rotation about the line of intersection.
- Given three planes, if they all intersect at a point, it is an roto-reflection: a rotation about the line of intersection of the first to planes followed by a reflection across the third. If the first two of them are parallel, it is a glide reflection: a translation through the parallel mirrors and a reflection across the third.
- Given four planes, the first two intersecting on a line perpendicular to the last two, which are parallel, it is a screw.

That’s all there is. We classify isometries by counting fixed points: **p** is a fixed point of f if f(**p**) = **p**.

- If f has four fixed points, not all on a plane, then the set of fixed points must be the entire space and f is the identity.
- If f has three fixed points, not all on a line, but f is not the identity, then the set of fixed points must be a plane. For any
**x**, if**y**was the point on the fixed point plane closest to**x**, the line through**x**and**y**is perpendicular to that plane. As f is not the identity and f must preserve the distances between**x**and all points on the plane, f(**x**) must be the point on the line of distance |**y**–**x**| from**y**but opposite**x**. Repeating for all**x**, f must be a reflection and the plane of fixed points must be its mirror. - If f has two fixed points and is not a reflection or the identity, its set of fixed points is a line. Choose a point
**x**not on the line and let**y**= (f(**x**) +**x**)/2. Let P be the plane containing f’s fixed points and also**y**, and let r be the reflection across P. Then r ° f is an isometry that fixes P, so as we have already seen, r ° f is a reflection, call it h. So f = r^{-1}° h is a composition of two reflections, and hence a rotation as translations have no fixed points. - If f has but one fixed point
**p**, choose**x**≠**p**, and let**y**= (f(**x**) +**x**)/2, and let P be the plane through**p**and**y**perpendicular to the line through f(**x**) and**x**and let r be the reflection across P. Then h = r ° f is an isometry fixing**p**and**x**, and hence is the identity, a reflection, or a rotation. So f = r^{-1}° h is a reflection, a rotation, or a roto-reflection; as it has only one fixed point, it must be a roto-reflection. - If f has no fixed points, choose any
**p**and let g be the translation**x**→**x**+ (**p**– f(**p**)). Then**p**is a fixed point of h = g ° f, and we have four subcases.- If h has four fixed points, not all on a line, then h is the identity and f = g
^{-1}° h is a translation. - If h has a plane of fixed points but is not the identity, then f = g
^{-1}° h is the composition of a translation and a reflection and is a reflection (if all three mirrors are parallel) or a glide reflection. - If h has a line of fixed points but not a plane, then f = g
^{-1}° h is a composition of a translation and a rotation and is a rotation (if two mirrors coincide) or a screw rotation. - If h has only one fixed point
**p**, then f = g^{-1}° h is a composition of a translation and a roto-inversion and is a glide reflection or a roto-inversion or a reflection.

- If h has four fixed points, not all on a line, then h is the identity and f = g

And that’s it.

One additional point. One of the more useful functions from matrices to real numbers is the determinant. Two important facts. First, the determinant of a product of matrices is the product of the determinants. Second, while the determinant of the identity matrix is 1, the determinant of a matrix of a reflection isometry is -1. That means that the matrix of a composition of an even number of reflections (the identity, rotations, translations, and screws) are 1 while the composition of an odd number of reflections (reflections, roto-reflections, and glides) is -1; noticed that the matrix is 1 if and only if the isometry is a direct motion, and otherwise it is -1 if it is an indirect motion.

And now for groups of isometries. A group of isometries is a set of isometries closed under composition and inverse. If f(**x**) = **a** + *M***x** and g(**x**) = **b** + *N***x**, then (g ∘ f)(**x**) = **b** + *N***a** + *NM***x** and thus f^{-1}(**x**) = -*M*^{-1}**a** + -*M*^{-1}**x**.

First of all, a *point group* is a group of isometries that fixes a common point. The most important point group is the orthogonal group, which is the group of all isometries that fix the origin.

Then there are groups of translations. The most popular of these is the *lattice group*: in *d*-dimensional space, one has a basis **b**_{1}, …, **b**_{d} such that the isometries **x** → **b**_{1} + **x**, …, **x** → **b**_{d} + **x** generate a subgroup of isometries (see the 20 June 2015 posting for details on generating subgroups). One important fact. Let G be a group of isometries, and let T be the group of translations in G. Then T is normal in G (see the 20 June 2015 posting for details on normal subgroups): if **x** → **a** + *M***x** (which we denote [**a**, *M*]) and **x** → **b** + **x** (which we denote [**b**, *I*]) are in G, then so is the composition [**a**, *M*] ∘ [**b**, *I*] ∘ [**a**, *M*]^{-1} = [**a** + *M***b** - *M*^{-1}**a**, *I*], which is a translation and hence in T.

Now for the reason why crystallographers are interested in all this stuff. In the Nineteenth century, a few daring souls considered the then politically incorrect idea that solids were made of atoms, and they followed up on Kepler‘s idea that a crystal may be composed of a regular array of atoms. (This idea was politically incorrect because as of 1800, all right-thinking folk knew that the atomic theory was wrong even if it was useful for chemical bookkeeping.) If a crystal is composed of, say, identical atoms, and if the crystal is symmetric in a way that it looks the same from each atom, what does that say about the structures of a crystal? It took much of the Nineteenth Century to distill a notion of symmetry for crystals that would have the following criteria.

As a simplification, imagine an infinite crystal filling all space. Its arrangement of atoms would satisfy:

- The crystal would look the same from any atom in the crystal.
- There is a minimal distance between any two atoms.
- For any plane in space, there are atoms on both sides of the plane.

We can distill this into group theoretic language; recall from the 20 June 2015 posting that the orbit of a point **p** under a group G is the set *G*(**p**) = {g(**p**) : g ∈ *G*}. We say that a group G of isometries on *d*-space is crystallographic if:

- For some (or any – either quantifier will do) point
**p**, we look at the orbit*G*(**p**) as follows… - There is a number ε > 0 such that for any two distinct points g(
**p**), h(**p**) ∈*G*, | g(**p**) – h(**p**)| > ε. This property is called*uniform discreteness*. - For any hyperplane (a line in 2-space, a plane in 3-space), there are points of
*G*(**p**) on both sides of the hyperplane.

The Fyodorov–Schoenflies–Bieberbach theorem states that:

- A group G is crystallographic in
*d*-space if and only if its subgroup T of translations is generated by a basis of*d*translations, and G/T is finite (see the 20 January 2015 posting for quotient groups). - For any two crystallographic groups G and H, if G is isomorphic to H, then for some affine function f, H = f ∘ G ∘ f
^{-1}. - For each
*d*, there are finitely many isomorphism classes of crystallographic groups on*d*-space.

This is probably the closest thing to a fundamental theorem of mathematical crystallography – at least for classical crystallography; adapting this to cover quasicrystals is one of the great challenges of contemporary mathematical crystallography. At any rate, probably the most accessible account is in R. L. E. Schwarzenberger’s *N*-dimensional crystallography; see also E. B. Vinberg’s Geometry II: Spaces of Constant Curvature. There are other references, but they embed the theorem in heavy-duty Riemannian geometry.