A refresher from last week: If a group G acts on a proper geodesic metric space X properly discontinuously and cocompactly by isometries, then G is quasi-isometric to X. Moreover, G is finitely generated.
Yes, I put “proper geodesic metric space” in italics because I forgot it in the statement of the theorem last week. [Aside: actually, you only need “length space” there, and proper geodesic will follow by Hopf-Rinow. But let’s skip that and just go with proper geodesic.] I also added the second sentence (which isn’t really a moreover, it comes for free during the proof).
At the end of last week I defined proper: closed balls are compact. A space is geodesic if there is a shortest path between any two points which realizes the distance between those points. For instance, the plane is geodesic: you can just draw a line between any two points. But if you take away the origin from the plane, it’s not geodesic anymore. The distance between (1,1) and (-1,-1) is , but the line should go through the origin. There is no geodesic between those two points in this space.
Now we have all our words, so let’s prove the theorem! I’ll italicize everywhere we use one of the conditions of the theorem.
Since our action is cocompact, we have a compact set K so that translates of it tile X. Pick a point inside K, call it , and a radius R so that K is entirely contained inside a ball of radius R/3 centered at
. For notation, this ball will be labelled
.

Schematic: K is the red square, special point is the yellow dot, yellow circle is radius R/3, lighter circle is radius R. Cartoon on right illustrates this relationship
We’ll pick a subset of the group G: Let . X is proper, so closed balls are compact. Since the action is properly discontinuous, this means that A is finite. [Reminder: properly discontinuous means that only finitely many group elements translate compact sets to intersect themselves].
Now we’ll show that G is finitely generated, and it’s generated by A. Choose some group element g in G. Draw a geodesic in X between your special point and its g-translate
. Now we’ll mark some points on that geodesic: mark a point every R/3 away from
, all the way to the end of the geodesic. You’ll have [(length of the segment)/(R/3) rounded up] many points marked. Let’s call that number n.

There are n blue points, and they’re all R/3 away from each other. Notice the last blue point might be closer to g.x_0, but it’s definitely less than or equal to R/3 away.
Here’s the clever part. Remember that K tiles X by G-translates (cocompactness), so each of those blue points lives inside a G-translate of K. Since lives inside K, that means there’s a nearby translate of
to each blue point. And since K fits inside a R/3 ball, each translate is less than or equal to R/3 away from its blue point.

The green points are translates of x_0: I also colored x_0 and g.x_0. The yellow circle indicates the the green point is within R/3 of its blue point.
We can bound how far apart the consecutive green points are from each other: each one is within R/3 of its blue point, which are all R/3 apart from their neighbors. So the green points are at most R/3+R/3+R/3= R from each other.

Middle portion is exactly R/3 long. So by the triangle inequality, the green points are less than or equal to R from each other.
Remember that the green points represent G-translates of . In the picture above I numbered them
. We just said that
. Since G acts by isometries, this means that
. So
lives inside our set A that we defined above- it moves
within R of itself.
Here’s a bit of cleverness: we can write , because all of the middle terms would cancel out and we’d be left with
. But each of those two-letter terms lives in A, so we just wrote g as a product of elements in A. That means that A generates G. We said above that A is finite, so G is finitely generated.
That was the “moreover” part of the theorem. The main thing is to show that G is quasi-isometric to X. Let’s try the function .
Above, we wrote g as a product of n elements of A, so that means that the length of g is at most n. In other words, . Now we’d like to bound it by
. We found n by dividing the geodesic into pieces, so we have
, where we added a 1 for the rounding. So we have one side of the quasi-isometry:
(using the action by isometries).
Now we need to bound the other side, which will be like stepping back through our clever argument. Let M be the maximum distance that an element of A translates . In symbols,
. Choose some g in G, with length n. That means we can write g as a product of n elements in A:
. Each
moves
at most M. If we step between each translate, we have
. There are n steps from
to
, and each step contributes at most M to the distance. So
.
With bounds on both sides, we can just pick the larger number to get our actual quasi-isometry. We also need the function to be quasi-onto, but it is because the action is cocompact so there are g translates of all over the place.
Huzzah!
Oops,meant to edit before this went out. You may have noticed we didn’t need strict geodesicity, if we had bounded the length of our path that would’ve also shown quasi-isometry. That’s how Bridson -Haefliger prove this theorem, using length spaces.
I highly recommend Michael Hull’s comment from last week for more on this. It’s excellent and has some historical interest!