Skip to content
The Lumenary
Research pathwaysResearch (graduate background) 120 min

Geometric group theory

Look at a group from far away and it becomes a space — a line, a plane, a tree or the hyperbolic plane — and the shape of that space knows deep algebraic facts about the group.

Formally verified · 14 LeanComputationally tested · 2 PythonAI-drafted · awaiting human reviewMathematically reviewed: Awaiting human review
MotivationH

What does a group look like from far away?

In 1911 and 1912 Max Dehn posed three questions about a group given by generators and relations: can we decide whether a word in the generators equals the identity (the word problem), whether two words are conjugate, and whether two presentations give isomorphic groups? For the fundamental groups of closed surfaces of genus g≥2g \ge 2 he solved the first two — and his solution was geometric. Such a group acts on the hyperbolic plane, tiling it by 4g4g-gons, and a word that represents the identity traces a closed path in that tiling; negative curvature forces any such path to contain more than half of the boundary of some tile, which can then be shortcut. This is "Dehn's algorithm".

Geometric group theory takes Dehn's idea as a programme. A finitely generated group GG becomes a metric space, its Cayley graph, and we ask what the large-scale shape of that space says about the algebra of GG:

  • Z2\Z^2 looks like the Euclidean plane, the free group F2F_2 like a tree branching four ways, and the fundamental group of a genus-2 surface like the hyperbolic plane.
  • How fast balls grow — polynomially or exponentially — detects whether GG is virtually nilpotent (Gromov's theorem).
  • Whether triangles are thin detects hyperbolic groups, for which the word problem is solvable by Dehn's algorithm.
  • Whether GG can be cut into pieces that reassemble into two copies of itself — the phenomenon behind the Banach–Tarski paradox — is a property of the group, non-amenability, and random walks on GG can detect it.

The key move is to forget small-scale detail: two spaces that agree "up to bounded distortion" are treated as the same. This lesson builds that language — word metrics, quasi-isometries, growth, hyperbolicity and amenability — and proves its first theorems: the Švarc–Milnor lemma, Sanov's free subgroup of SL(2,Z)\mathrm{SL}(2, \Z) and the paradoxical decomposition of F2F_2.

IntuitionH

Zooming out

Draw Z2\Z^2 with generators (1,0)(1,0) and (0,1)(0,1): the Cayley graph is the square grid. Walk to a point (m,n)(m, n) and the shortest path has length ∣m∣+∣n∣|m| + |n|; the ball of radius rr is a diamond with 2r2+2r+12r^2 + 2r + 1 points. Now zoom out by a factor of a thousand: the grid becomes a plane with the ℓ1\ell^1 metric. Change the generators to (1,0),(0,1),(1,1)(1,0), (0,1), (1,1) and the diamond becomes a hexagon — a different metric, but only by a bounded factor, and from far away still a plane.

Draw F2=⟨a,b⟩F_2 = \langle a, b \rangle instead: every vertex has four edges (a±1,b±1a^{\pm1}, b^{\pm1}) and there are no cycles, because no non-trivial reduced word is the identity. The Cayley graph is the 4-regular tree, and the ball of radius rr has 2⋅3r−12 \cdot 3^r - 1 elements: exponential growth, like area in the hyperbolic plane.

Balls of radius 3 in two Cayley graphs, centred at the identity (gold). Left: the free group $F_2$ with generators $a^{\pm 1}, b^{\pm 1}$ — a tree, with $1 + 4 + 12 + 36 = 53$ elements. Right: $\Z^2$ with the standard generators — a grid, with $25 = 2 \cdot 3^2 + 2 \cdot 3 + 1$ elements. Edge lengths in the tree are drawn halving at each step only to fit it on the page; every edge has length 1.

The guiding questions are coarse ones. Which properties survive replacing a space by one at bounded distortion from it? A quasi-isometry allows a multiplicative error and an additive error in distances; it can crush a finite group to a point and inflate Z\Z to R\R. What survives is exactly the large-scale geometry: the number of ends, growth type, hyperbolicity, amenability, and (for finitely generated groups) finite presentability. What does not survive is local algebra such as torsion or commutativity: Z\Z and Z×S3\Z \times S_3 are quasi-isometric.

DefinitionsH

Word metrics, quasi-isometries, growth, hyperbolicity, amenability

Throughout, GG is a group with a finite generating set SS, which we may assume symmetric (S=S−1S = S^{-1}) and not containing 11.

Definition— Cayley graph and word metric

The Cayley graph Cay(G,S)\mathrm{Cay}(G, S) has vertex set GG and an edge from gg to gsgs for each g∈Gg \in G and s∈Ss \in S. The word length ∣g∣S|g|_S is the length of a shortest word in SS representing gg, and the word metric is dS(g,h)=∣g−1h∣Sd_S(g, h) = |g^{-1} h|_S, the path metric of the Cayley graph restricted to its vertices. The group acts on its Cayley graph by left multiplication, by isometries: dS(kg,kh)=dS(g,h)d_S(kg, kh) = d_S(g, h).

Definition— quasi-isometry

A map f:X→Yf : X \to Y of metric spaces is an (L,C)(L, C)-quasi-isometric embedding (L≥1L \ge 1, C≥0C \ge 0) if

1L d(x,x′)−C  ≤  d(f(x),f(x′))  ≤  L d(x,x′)+Cfor all x,x′∈X.\tfrac{1}{L}\, d(x, x') - C \;\le\; d(f(x), f(x')) \;\le\; L\, d(x, x') + C \quad \text{for all } x, x' \in X.

It is a quasi-isometry if moreover every point of YY lies within CC of f(X)f(X). Being quasi-isometric is an equivalence relation (a quasi-isometry has a quasi-inverse, and quasi-isometries compose).

Definition— growth function

The growth function of (G,S)(G, S) is βS(r)=∣BS(r)∣\beta_S(r) = |B_S(r)|, the number of elements of word length at most rr. Write β⪯γ\beta \preceq \gamma if β(r)≤Cγ(Cr+C)+C\beta(r) \le C\gamma(Cr + C) + C for some CC, and β∼γ\beta \sim \gamma if β⪯γ⪯β\beta \preceq \gamma \preceq \beta. The growth type of GG is the ∼\sim-class of βS\beta_S; it does not depend on SS and is a quasi-isometry invariant. GG has polynomial growth if βS(r)≤Crd\beta_S(r) \le C r^d, exponential growth if βS(r)≥cr\beta_S(r) \ge c^r for some c>1c > 1, and intermediate growth otherwise.

Definition— δ-hyperbolic space and hyperbolic group

A geodesic metric space is δ\delta-hyperbolic (in the sense of Rips) if every geodesic triangle is δ\delta-slim: each side lies in the closed δ\delta-neighbourhood of the union of the other two. A finitely generated group is hyperbolic (word-hyperbolic, Gromov-hyperbolic) if its Cayley graph, with edges of length 1, is δ\delta-hyperbolic for some δ≥0\delta \ge 0.

Definition— amenable group

A group GG is amenable if there is a finitely additive, left-invariant probability measure μ\mu defined on all subsets of GG: μ(G)=1\mu(G) = 1, μ(A⊔B)=μ(A)+μ(B)\mu(A \sqcup B) = \mu(A) + \mu(B) and μ(gA)=μ(A)\mu(gA) = \mu(A). For finitely generated GG this is equivalent to the Følner condition (Følner, 1955): for every ε>0\varepsilon > 0 there is a finite non-empty F⊆GF \subseteq G with ∣Fs △ F∣≤ε∣F∣|Fs \,\triangle\, F| \le \varepsilon |F| for all s∈Ss \in S — sets whose boundary is small compared with their size.

A group action G↷XG \curvearrowright X on a metric space is proper if for every compact K⊆XK \subseteq X the set {g∈G:gK∩K≠∅}\{g \in G : gK \cap K \ne \varnothing\} is finite, and cocompact if X=GKX = GK for some compact KK. A metric space is proper if its closed balls are compact, and geodesic if any two points are joined by a path whose length is their distance.

Worked examplesH

Examples and non-examples

Example— Finite groups, and $\Z$ with different generators

A finite group is quasi-isometric to a point: the map to a point is a (1,diam⁡)(1, \operatorname{diam})-quasi-isometry. For G=ZG = \Z and S={±1}S = \{\pm 1\} the Cayley graph is a line; for S′={±2,±3}S' = \{\pm 2, \pm 3\} it is a "thick" line with ∣n∣S′=⌈∣n∣/3⌉|n|_{S'} = \lceil |n|/3 \rceil for ∣n∣≥2|n| \ge 2 (and ∣1∣S′=2|1|_{S'} = 2, since 1=3−21 = 3 - 2). The two word metrics satisfy 13∣n∣S≤∣n∣S′≤2∣n∣S\tfrac13 |n|_S \le |n|_{S'} \le 2|n|_S, as Theorem 1 below predicts, and both are quasi-isometric to R\R.

Example— Fundamental groups and universal covers

Zn\Z^n acts on Rn\R^n by translations, properly and cocompactly, so by the Švarc–Milnor lemma Zn\Z^n is quasi-isometric to Rn\R^n. The fundamental group π1(Σg)\pi_1(\Sigma_g) of a closed surface of genus g≥2g \ge 2 acts by deck transformations on the universal cover, the hyperbolic plane H2\mathbb{H}^2 with a metric of curvature −1-1, so π1(Σg)\pi_1(\Sigma_g) is quasi-isometric to H2\mathbb{H}^2; all these surface groups are quasi-isometric to one another. SL(2,Z)\mathrm{SL}(2, \Z) contains a free subgroup of index 12 — the subgroup generated by Sanov's matrices in Theorem 4 below, which together with −I-I generate the congruence subgroup of matrices congruent to II modulo 2 — so SL(2,Z)\mathrm{SL}(2, \Z) is quasi-isometric to a tree (a finite-index subgroup is always quasi-isometric to the whole group).

Example— Distinguishing groups up to quasi-isometry

Z2\Z^2 and Z3\Z^3 are not quasi-isometric: their growth functions are ∼r2\sim r^2 and ∼r3\sim r^3, and growth type is a quasi-isometry invariant. Z2\Z^2 and F2F_2 are not quasi-isometric: polynomial versus exponential growth. F2F_2 and F3F_3 are quasi-isometric (all regular trees of degree at least 3 are quasi-isometric to one another), although they are not isomorphic. F2F_2 and π1(Σ2)\pi_1(\Sigma_2) both have exponential growth and are hyperbolic, yet they are not quasi-isometric: the tree has infinitely many ends, the hyperbolic plane only one.

Example— The Heisenberg group: polynomial growth of degree 4

The integer Heisenberg group H3(Z)H_3(\Z) of upper unitriangular 3×33 \times 3 integer matrices, written as triples with (a,b,c)(a′,b′,c′)=(a+a′,b+b′,c+c′+ab′)(a, b, c)(a', b', c') = (a + a', b + b', c + c' + ab'), is generated by x=(1,0,0)x = (1, 0, 0) and y=(0,1,0)y = (0, 1, 0), with central commutator [x,y]=(0,0,1)[x, y] = (0, 0, 1). Since [xn,yn]=(0,0,n2)[x^n, y^n] = (0, 0, n^2), the central coordinate grows quadratically along words of linear length, and ∣B(r)∣∼r4|B(r)| \sim r^4, not r3r^3. The Bass–Guivarc'h formula gives the degree d=∑kk⋅rank⁡(Gk/Gk+1)d = \sum_k k \cdot \operatorname{rank}(G_k / G_{k+1}) for the lower central series of a nilpotent group: here 1⋅2+2⋅1=41 \cdot 2 + 2 \cdot 1 = 4. The experiment below estimates it.

Example— A non-example of hyperbolicity: the grid

In Cay(Z2,{(±1,0),(0,±1)})\mathrm{Cay}(\Z^2, \{(\pm1, 0), (0, \pm1)\}) take the geodesic triangle with vertices (0,0)(0,0), (n,0)(n,0), (n,n)(n,n): sides along the xx-axis and the line x=nx = n, and as third side the staircase path (0,0)→(0,n)→(n,n)(0,0) \to (0, n) \to (n, n), which has length 2n2n and is a geodesic. The point (0,n)(0, n) on the third side has distance nn from the union of the other two. So no δ\delta works: Z2\Z^2 is not hyperbolic. By contrast, a tree is 00-hyperbolic (every geodesic triangle is a tripod), and H2\mathbb{H}^2 is δ\delta-hyperbolic with δ=log⁡(1+2)\delta = \log(1 + \sqrt2).

ProofH

Central theorems

Theorem— Theorem 1 (the word metric is well defined up to bi-Lipschitz maps)

Let SS and S′S' be finite generating sets of GG, and let L=max⁡s∈S∣s∣S′L = \max_{s \in S} |s|_{S'}. Then ∣g∣S′≤L ∣g∣S|g|_{S'} \le L\, |g|_S for all g∈Gg \in G. Consequently the identity map (G,dS)→(G,dS′)(G, d_S) \to (G, d_{S'}) is bi-Lipschitz, and Cay(G,S)\mathrm{Cay}(G, S) and Cay(G,S′)\mathrm{Cay}(G, S') are quasi-isometric.

Proof

Write g=s1ε1⋯snεng = s_1^{\varepsilon_1} \cdots s_n^{\varepsilon_n} with n=∣g∣Sn = |g|_S, si∈Ss_i \in S, εi=±1\varepsilon_i = \pm 1. Each si±1s_i^{\pm1} is a product of at most LL letters of S′S' (inverting a word does not change its length). Concatenating gives a word in S′S' of length at most LnLn representing gg. Applying this to g−1hg^{-1}h gives dS′(g,h)≤L dS(g,h)d_{S'}(g, h) \le L\, d_S(g, h), and exchanging the roles of SS and S′S' gives the reverse inequality with L′=max⁡s′∈S′∣s′∣SL' = \max_{s' \in S'} |s'|_S. Every point of the Cayley graph lies within 12\tfrac12 of a vertex, so each Cayley graph is quasi-isometric to its vertex set.

∎

Theorem— Theorem 2 (Švarc–Milnor lemma; Švarc 1955, Milnor 1968)

Let a group GG act properly and cocompactly by isometries on a proper geodesic metric space XX. Then GG is finitely generated, and for every x0∈Xx_0 \in X the orbit map G→XG \to X, g↦gx0g \mapsto g x_0, is a quasi-isometry (for any word metric on GG).

Proof

By cocompactness X=GKX = GK for a compact KK; choose RR with K⊆Bˉ(x0,R)K \subseteq \bar B(x_0, R), so the translates g Bˉ(x0,R)g\,\bar B(x_0, R) cover XX. Let

S={s∈G:d(x0,sx0)≤2R+1}.S = \{ s \in G : d(x_0, s x_0) \le 2R + 1 \}.

SS is finite and symmetric. The ball K′=Bˉ(x0,2R+1)K' = \bar B(x_0, 2R + 1) is compact because XX is proper, and sx0∈sK′∩K′s x_0 \in sK' \cap K' for every s∈Ss \in S, so SS is finite by properness. It is symmetric because d(x0,s−1x0)=d(sx0,x0)d(x_0, s^{-1} x_0) = d(s x_0, x_0).

SS generates GG, and ∣g∣S≤d(x0,gx0)+1|g|_S \le d(x_0, g x_0) + 1. Let g∈Gg \in G, D=d(x0,gx0)D = d(x_0, g x_0) and n=⌊D⌋+1n = \lfloor D \rfloor + 1. Choose a geodesic from x0x_0 to gx0g x_0 and points x0=y0,y1,…,yn=gx0x_0 = y_0, y_1, \dots, y_n = g x_0 on it with d(yi,yi+1)=D/n<1d(y_i, y_{i+1}) = D/n < 1. For each ii choose hi∈Gh_i \in G with d(yi,hix0)≤Rd(y_i, h_i x_0) \le R, taking h0=1h_0 = 1 and hn=gh_n = g. Then

d(x0,hi−1hi+1x0)=d(hix0,hi+1x0)≤R+1+R,d(x_0, h_i^{-1} h_{i+1} x_0) = d(h_i x_0, h_{i+1} x_0) \le R + 1 + R,

so si:=hi−1hi+1∈Ss_i := h_i^{-1} h_{i+1} \in S, and g=hn=s0s1⋯sn−1g = h_n = s_0 s_1 \cdots s_{n-1} by telescoping. Hence ∣g∣S≤n≤D+1|g|_S \le n \le D + 1.

d(x0,gx0)≤λ∣g∣Sd(x_0, g x_0) \le \lambda |g|_S, where λ=max⁡s∈Sd(x0,sx0)\lambda = \max_{s \in S} d(x_0, s x_0). If g=t1⋯tkg = t_1 \cdots t_k with tj∈St_j \in S, then by the triangle inequality and because GG acts by isometries,

d(x0,gx0)≤∑j=1kd(t1⋯tj−1x0, t1⋯tjx0)=∑j=1kd(x0,tjx0)≤λk.d(x_0, g x_0) \le \sum_{j=1}^{k} d(t_1 \cdots t_{j-1} x_0,\, t_1 \cdots t_j x_0) = \sum_{j=1}^{k} d(x_0, t_j x_0) \le \lambda k.

Apply both bounds to g−1hg^{-1}h, using d(gx0,hx0)=d(x0,g−1hx0)d(g x_0, h x_0) = d(x_0, g^{-1} h x_0) and dS(g,h)=∣g−1h∣Sd_S(g, h) = |g^{-1}h|_S:

dS(g,h)−1  ≤  d(gx0,hx0)  ≤  λ dS(g,h).d_S(g, h) - 1 \;\le\; d(g x_0, h x_0) \;\le\; \lambda\, d_S(g, h).

So the orbit map is a quasi-isometric embedding with L=max⁡(λ,1)L = \max(\lambda, 1) and C=1C = 1, and every point of XX lies within RR of the orbit. By Theorem 1 the conclusion holds for every finite generating set.

∎

Theorem— Corollary

If MM is a closed Riemannian manifold, then π1(M)\pi_1(M) is finitely generated and quasi-isometric to the universal cover M~\tilde M with the lifted metric. In particular, closed manifolds with quasi-isometrically different universal covers have non-isomorphic fundamental groups.

Proof

M~\tilde M with the pulled-back metric is complete, hence proper and geodesic by the Hopf–Rinow theorem; deck transformations act by isometries, properly (the action is a covering action) and cocompactly (M~=π1(M)⋅K\tilde M = \pi_1(M) \cdot K for a compact KK mapping onto MM, such as the closure of a lift of a fundamental domain). Apply Theorem 2.

∎

Theorem— Theorem 3 (ping-pong lemma, two players)

Let GG act on a set XX, and let a,b∈Ga, b \in G. Suppose X1,X2⊆XX_1, X_2 \subseteq X are disjoint and non-empty, and for every integer n≠0n \ne 0

an(X2)⊆X1andbn(X1)⊆X2.a^n(X_2) \subseteq X_1 \qquad\text{and}\qquad b^n(X_1) \subseteq X_2.

Then aa and bb generate a free group of rank 2: no non-trivial reduced word in a±1,b±1a^{\pm1}, b^{\pm1} is the identity.

Proof

A non-trivial reduced word is a product of non-zero powers of aa and bb that alternate. First let w=an1bm1an2⋯bmk−1ankw = a^{n_1} b^{m_1} a^{n_2} \cdots b^{m_{k-1}} a^{n_k} begin and end with a power of aa. Reading right to left, anka^{n_k} sends X2X_2 into X1X_1, then bmk−1b^{m_{k-1}} sends that into X2X_2, and so on, until an1a^{n_1} lands in X1X_1. So w(X2)⊆X1w(X_2) \subseteq X_1. Since X2X_2 is non-empty and disjoint from X1X_1, ww moves some point, so w≠1w \ne 1. Any other non-trivial reduced word ww can be conjugated into this form: if w=bm1⋯bmkw = b^{m_1} \cdots b^{m_k}, then awa−1a w a^{-1} has it; if ww begins with an1a^{n_1} and ends with a power of bb, choose n≠0,−n1n \ne 0, -n_1 and use anwa−na^{n} w a^{-n}; if it begins with a power of bb and ends with anka^{n_k}, use a−nwana^{-n} w a^{n} with n≠0,−nkn \ne 0, -n_k. A conjugate of ww is ≠1\ne 1 only if w≠1w \ne 1.

∎

Theorem— Theorem 4 (Sanov, 1947)

The matrices A=(1201)A = \begin{pmatrix} 1 & 2 \\ 0 & 1 \end{pmatrix} and B=(1021)B = \begin{pmatrix} 1 & 0 \\ 2 & 1 \end{pmatrix} generate a free subgroup of rank 2 of SL(2,Z)\mathrm{SL}(2, \Z).

Proof

Let SL(2,Z)\mathrm{SL}(2, \Z) act on Z2\Z^2 and put X1={(x,y):∣x∣>∣y∣}X_1 = \{(x, y) : |x| > |y|\}, X2={(x,y):∣x∣<∣y∣}X_2 = \{(x, y) : |x| < |y|\}: disjoint, non-empty. For n≠0n \ne 0, An(x,y)=(x+2ny,y)A^n(x, y) = (x + 2ny, y). If ∣x∣<∣y∣|x| < |y| then

∣x+2ny∣≥2∣n∣ ∣y∣−∣x∣≥2∣y∣−∣x∣>∣y∣,|x + 2ny| \ge 2|n|\,|y| - |x| \ge 2|y| - |x| > |y|,

so An(X2)⊆X1A^n(X_2) \subseteq X_1. Symmetrically Bn(x,y)=(x,y+2nx)B^n(x, y) = (x, y + 2nx) and Bn(X1)⊆X2B^n(X_1) \subseteq X_2. Apply Theorem 3.

∎

The same strategy, with rotations of R3\mathbb{R}^3 acting on the sphere, produces a free subgroup of SO(3)\mathrm{SO}(3) — for example the rotations through arccos⁡13\arccos \tfrac13 about two perpendicular axes — which is the group-theoretic heart of the Banach–Tarski paradox. More generally, Tits' alternative (1972) says that a finitely generated linear group over a field is either virtually solvable or contains a free subgroup of rank 2.

Theorem— Theorem 5 (free groups are paradoxical, hence not amenable)

For x∈{a±1,b±1}x \in \{a^{\pm1}, b^{\pm1}\} let W(x)⊆F2W(x) \subseteq F_2 be the set of reduced words beginning with xx. Then

F2={1}⊔W(a)⊔W(a−1)⊔W(b)⊔W(b−1),F2=W(a)⊔aW(a−1)=W(b)⊔bW(b−1).F_2 = \{1\} \sqcup W(a) \sqcup W(a^{-1}) \sqcup W(b) \sqcup W(b^{-1}), \qquad F_2 = W(a) \sqcup a W(a^{-1}) = W(b) \sqcup b W(b^{-1}).

Consequently F2F_2, and every group containing F2F_2, is not amenable.

Proof

The first decomposition sorts reduced words by their first letter. For the second: if w∉W(a)w \notin W(a), then a−1wa^{-1}w is reduced (no cancellation, since ww does not begin with aa) and begins with a−1a^{-1}, so w=a(a−1w)∈aW(a−1)w = a(a^{-1}w) \in aW(a^{-1}). Conversely, if u=a−1u′∈W(a−1)u = a^{-1}u' \in W(a^{-1}) is reduced, then u′u' does not begin with aa, so au=u′∉W(a)au = u' \notin W(a). Thus F2=W(a)⊔aW(a−1)F_2 = W(a) \sqcup aW(a^{-1}), and likewise for bb.

Suppose μ\mu is a finitely additive left-invariant probability measure on all subsets of F2F_2. Then 1=μ(W(a))+μ(aW(a−1))=μ(W(a))+μ(W(a−1))1 = \mu(W(a)) + \mu(aW(a^{-1})) = \mu(W(a)) + \mu(W(a^{-1})) and likewise 1=μ(W(b))+μ(W(b−1))1 = \mu(W(b)) + \mu(W(b^{-1})), so the four disjoint sets W(a±1),W(b±1)W(a^{\pm1}), W(b^{\pm1}) have total measure 2>1=μ(F2)2 > 1 = \mu(F_2), a contradiction. If F2≤GF_2 \le G and μ\mu were an invariant mean on GG, choose a set TT of representatives of the right cosets F2gF_2 g; then ν(A)=μ(AT)\nu(A) = \mu(A T) is an invariant mean on F2F_2 (the sets ATAT, A⊆F2A \subseteq F_2, are disjoint for disjoint AA and (hA)T=h(AT)(hA)T = h(AT)), which is impossible.

∎

Theorem— Banach–Tarski paradox (1924), statement

Assuming the axiom of choice, a solid ball in R3\R^3 can be partitioned into finitely many pieces (five suffice, and fewer do not — Robinson, 1947) which can be moved by rigid motions to form two balls of the same radius.

The proof combines Theorem 5 for a free subgroup of SO(3)\mathrm{SO}(3) with the axiom of choice: choose one point in each orbit of the free group on the sphere (minus the countably many fixed points of its non-trivial elements), and transport the decomposition of F2F_2 to the sphere and then to the ball. The pieces are not Lebesgue measurable, so there is no conflict with measure theory: the paradox shows that no finitely additive, rotation-invariant measure can be defined on all subsets of R3\R^3 (von Neumann's insight was that this is a property of the group of motions; in the plane the motion group is amenable, and no such paradox with rigid motions exists). See the axiom of choice and measure theory.

Theorem— Theorem 6 (growth: Gromov 1981; Milnor–Wolf 1968; Grigorchuk 1984), statements

  1. Gromov's polynomial growth theorem. A finitely generated group has polynomial growth if and only if it has a nilpotent subgroup of finite index. The easy direction: a finitely generated nilpotent group has growth ∼rd\sim r^d with d=∑kk⋅rank⁡(Gk/Gk+1)d = \sum_k k \cdot \operatorname{rank}(G_k/G_{k+1}) (Bass 1972, Guivarc'h 1973). The hard direction is Gromov's; a proof using harmonic functions was given by Kleiner (2010).
  2. Milnor–Wolf. A finitely generated solvable group has either polynomial or exponential growth.
  3. Milnor (1968). The fundamental group of a closed Riemannian manifold of negative sectional curvature has exponential growth.
  4. Grigorchuk (1984). There are finitely generated groups of intermediate growth, answering a question of Milnor.

Theorem— Theorem 7 (hyperbolic groups; Gromov 1987), statements

  1. Hyperbolicity of geodesic spaces is invariant under quasi-isometry (by the Morse lemma: quasi-geodesics stay close to geodesics). Hence hyperbolicity of a group does not depend on the generating set.
  2. Free groups, finite groups, surface groups π1(Σg)\pi_1(\Sigma_g) with g≥2g \ge 2, and fundamental groups of closed manifolds of negative sectional curvature are hyperbolic (the last by the Švarc–Milnor lemma, since the universal cover is CAT(−1)\mathrm{CAT}(-1) after rescaling, hence δ\delta-hyperbolic).
  3. A finitely presented group is hyperbolic if and only if it satisfies a linear isoperimetric inequality; then it has a Dehn presentation, and its word problem is solved by Dehn's algorithm in linear time. Hyperbolic groups are finitely presented and contain no subgroup isomorphic to Z2\Z^2.
ExplanationH

The landscape: what is known and what is open

Established. Beyond the theorems above: Stallings' theorem (1968–71) that a finitely generated group has more than one end exactly when it splits over a finite subgroup; quasi-isometric rigidity results such as "every finitely generated group quasi-isometric to Zn\Z^n is virtually Zn\Z^n" (from Gromov's theorem) and "every finitely generated group quasi-isometric to H2\mathbb{H}^2 is virtually a closed surface group" (Tukia 1988, Gabai 1992, Casson–Jungreis 1994); Kesten's criterion (1959) that a finitely generated group is amenable exactly when the return probability of simple random walk does not decay exponentially; Ol'shanskii's counterexample (1980) to von Neumann's conjecture — a non-amenable group with no free subgroup; and the theory of special cube complexes of Haglund and Wise, which Agol used to prove the virtual Haken conjecture for hyperbolic 3-manifolds (2013).

Open problems.

  • Is every hyperbolic group residually finite?
  • Gromov's surface subgroup question: does every one-ended hyperbolic group contain a subgroup isomorphic to the fundamental group of a closed surface of genus at least 2? (Yes for fundamental groups of closed hyperbolic 3-manifolds, by Kahn and Markovic, 2012.)
  • Cannon's conjecture: a hyperbolic group whose Gromov boundary is a 2-sphere acts properly and cocompactly by isometries on H3\mathbb{H}^3.
  • Is Richard Thompson's group FF amenable?
  • Grigorchuk's gap conjecture: is there a gap between polynomial growth and growth ere^{\sqrt r}? (Shalom and Tao proved a smaller gap, 2010.)
Formal mathematicsF

What Lean can say: word metrics, quasi-isometries and ping-pong

Mathlib has recently gained a geometric group theory folder: generating families (Group.Generators), the word length and word metric, and the linear lower bound on growth. It also has the ping-pong lemma for free products. We use all three.

The word metric is a metric because word length is subadditive, and Theorem 1 — the reason the subject is about groups and not about generating sets — is proved here by induction on a shortest word:

word_length_mul_leLean 4Applies a library theoremFormally verified
/-- The word length is subadditive: `|gh|_S ≤ |g|_S + |h|_S`. Concatenating a shortest word for
`g` with one for `h` spells `gh`. This is Mathlib's `Group.Generators.wordLength_mul_le`; it makes
`d_S(g, h) = |g⁻¹h|_S` a metric, the **word metric**. -/
theorem word_length_mul_le (P : Group.Generators G ι) (g h : G) :
    P.wordLength (g * h) ≤ P.wordLength g + P.wordLength h :=
  P.wordLength_mul_le g h
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
wordLength_le_mul_of_generatorsLean 4Proved here from basic factsFormally verified
/-- **Changing generators distorts word length by a bounded factor.** If every generator of the
family `P` has `Q`-word length at most `L`, then `|g|_Q ≤ L · |g|_P` for every `g`. Proof: write
`g` as a shortest `P`-word `s₁^{±1} ⋯ s_n^{±1}`; replace each letter by a `Q`-word of length at
most `L` (inverting a word does not change its length) and use subadditivity. Applied in both
directions, the identity map is a bi-Lipschitz map between the two word metrics, so the Cayley
graphs for two finite generating sets are quasi-isometric. -/
theorem wordLength_le_mul_of_generators (P : Group.Generators G ι) (Q : Group.Generators G κ)
    (L : ℕ) (hL : ∀ i, Q.wordLength (P.val i) ≤ L) (g : G) :
    Q.wordLength g ≤ L * P.wordLength g := by
  -- First: every `P`-word of length `n` has `Q`-length at most `L * n`.
  have key : ∀ l : List (ι × Bool), Q.wordLength (P.wordProd l) ≤ L * l.length := by
    intro l
    induction l with
    | nil => simp
    | cons a l ih =>
      obtain ⟨i, b⟩ := a
      have hletter : Q.wordLength (cond b (P.val i) (P.val i)⁻¹) ≤ L := by
        cases b <;> simp [hL i]
      calc Q.wordLength (P.wordProd ((i, b) :: l))
          = Q.wordLength (cond b (P.val i) (P.val i)⁻¹ * P.wordProd l) := by
            rw [P.wordProd_cons]
        _ ≤ Q.wordLength (cond b (P.val i) (P.val i)⁻¹) + Q.wordLength (P.wordProd l) :=
            Q.wordLength_mul_le _ _
        _ ≤ L + L * l.length := Nat.add_le_add hletter ih
        _ = L * ((i, b) :: l).length := by simp [Nat.mul_succ, Nat.add_comm]
  -- Then apply it to a shortest `P`-word for `g`.
  obtain ⟨l, hl, rfl⟩ := P.exists_isGeodesic g
  rw [hl.eq]
  exact key l
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor

Quasi-isometries are not (yet) in Mathlib, so we define them, prove that they compose (the transitivity of "quasi-isometric"), and check the prototype example Z↪R\Z \hookrightarrow \R:

IsQIEmbeddingLean 4Formally verified
/-- `f : X → Y` is an `(L, C)`-**quasi-isometric embedding** (with `L ≥ 1`, `C ≥ 0`) if it
distorts distances by at most a factor `L`, up to an additive error `C`:
`d(x, x')/L − C ≤ d(f x, f x') ≤ L · d(x, x') + C`. Such a map may be discontinuous and may
collapse bounded sets: it only sees the space "from far away". -/
def IsQIEmbedding (f : X → Y) (L C : ℝ) : Prop :=
  1 ≤ L ∧ 0 ≤ C ∧ ∀ x x', dist x x' / L - C ≤ dist (f x) (f x') ∧
    dist (f x) (f x') ≤ L * dist x x' + C
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
IsQuasiIsometryLean 4Formally verified
/-- A **quasi-isometry** is a quasi-isometric embedding that is **coarsely surjective**: every
point of `Y` lies within `C` of the image. Two spaces are quasi-isometric if there is a
quasi-isometry between them; for example `ℤ` and `ℝ`, or a group and its Cayley graph. -/
def IsQuasiIsometry (f : X → Y) (L C : ℝ) : Prop :=
  IsQIEmbedding f L C ∧ ∀ y, ∃ x, dist (f x) y ≤ C
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
isometry_isQIEmbeddingLean 4Proved here from basic factsFormally verified
/-- Every isometric embedding is a `(1, 0)`-quasi-isometric embedding: with `L = 1` and `C = 0`
both inequalities become the equation `d(f x, f x') = d(x, x')`. -/
theorem isometry_isQIEmbedding {f : X → Y} (hf : Isometry f) : IsQIEmbedding f 1 0 := by
  refine ⟨le_rfl, le_rfl, fun x x' => ?_⟩
  rw [hf.dist_eq]
  constructor <;> simp
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
compLean 4Proved here from basic factsFormally verified
/-- Quasi-isometric embeddings compose: if `f` is an `(L, C)`- and `g` an `(L', C')`-quasi-isometric
embedding, then `g ∘ f` is an `(L'L, L'C + C')`-quasi-isometric embedding. Upper bound:
`d(gfx, gfx') ≤ L'(L d + C) + C'`. Lower bound: `d(gfx, gfx') ≥ (d/L − C)/L' − C'`, and
`C/L' ≤ L'C` because `L' ≥ 1`. -/
theorem IsQIEmbedding.comp {f : X → Y} {g : Y → Z} {L C L' C' : ℝ}
    (hf : IsQIEmbedding f L C) (hg : IsQIEmbedding g L' C') :
    IsQIEmbedding (g ∘ f) (L' * L) (L' * C + C') := by
  obtain ⟨hL, hC, hfd⟩ := hf
  obtain ⟨hL', hC', hgd⟩ := hg
  have hLpos : 0 < L := lt_of_lt_of_le one_pos hL
  have hL'pos : 0 < L' := lt_of_lt_of_le one_pos hL'
  refine ⟨one_le_mul_of_one_le_of_one_le hL' hL, by positivity, fun x x' => ⟨?_, ?_⟩⟩
  · obtain ⟨hf1, -⟩ := hfd x x'
    obtain ⟨hg1, -⟩ := hgd (f x) (f x')
    have hdiv : (dist x x' / L - C) / L' ≤ dist (f x) (f x') / L' :=
      div_le_div_of_nonneg_right hf1 hL'pos.le
    have hCL : C / L' ≤ L' * C := by
      rw [div_le_iff₀ hL'pos]
      nlinarith [mul_le_mul_of_nonneg_left hL' hC]
    have hsplit : (dist x x' / L - C) / L' = dist x x' / (L' * L) - C / L' := by
      field_simp
    simp only [Function.comp]
    linarith
  · obtain ⟨-, hf2⟩ := hfd x x'
    obtain ⟨-, hg2⟩ := hgd (f x) (f x')
    simp only [Function.comp]
    nlinarith [mul_le_mul_of_nonneg_left hf2 hL'pos.le]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
compLean 4Proved here from basic factsFormally verified
/-- Quasi-isometries compose, so "being quasi-isometric" is transitive. A point `z` is within `C'`
of some `g y`, and `y` is within `C` of some `f x`; then `g (f x)` is within `L'C + C' + C'` of
`z`. We use the common constant `L'C + 2C'`. -/
theorem IsQuasiIsometry.comp {f : X → Y} {g : Y → Z} {L C L' C' : ℝ}
    (hf : IsQuasiIsometry f L C) (hg : IsQuasiIsometry g L' C') :
    IsQuasiIsometry (g ∘ f) (L' * L) (L' * C + 2 * C') := by
  obtain ⟨hfe, hfs⟩ := hf
  obtain ⟨hge, hgs⟩ := hg
  obtain ⟨-, -, hcd⟩ := IsQIEmbedding.comp hfe hge
  obtain ⟨hL, hC, -⟩ := hfe
  obtain ⟨hL', hC', hgd⟩ := hge
  refine ⟨⟨one_le_mul_of_one_le_of_one_le hL' hL, by positivity, fun x x' => ?_⟩, fun z => ?_⟩
  · obtain ⟨h1, h2⟩ := hcd x x'
    exact ⟨by linarith, by linarith⟩
  · obtain ⟨y, hy⟩ := hgs z
    obtain ⟨x, hx⟩ := hfs y
    refine ⟨x, ?_⟩
    obtain ⟨-, hg2⟩ := hgd (f x) y
    calc dist ((g ∘ f) x) z ≤ dist (g (f x)) (g y) + dist (g y) z := dist_triangle _ _ _
      _ ≤ (L' * dist (f x) y + C') + C' := by gcongr
      _ ≤ L' * C + 2 * C' := by nlinarith [mul_le_mul_of_nonneg_left hx (by linarith : 0 ≤ L')]
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
int_cast_isQuasiIsometryLean 4Proved here from basic factsFormally verified
/-- The inclusion `ℤ ↪ ℝ` is a `(1, 1/2)`-quasi-isometry: it preserves distances exactly, and every
real number lies within `1/2` of an integer (round it). So the discrete group `ℤ` and the line `ℝ`
look the same from far away — the prototype of "a group is quasi-isometric to the space it acts
on" (the Švarc–Milnor lemma). -/
theorem int_cast_isQuasiIsometry : IsQuasiIsometry (fun n : ℤ => (n : ℝ)) 1 (1 / 2) := by
  refine ⟨⟨le_rfl, by norm_num, fun m n => ?_⟩, fun y => ⟨round y, ?_⟩⟩
  · rw [Int.dist_cast_real]
    constructor <;> linarith [dist_nonneg (x := m) (y := n)]
  · rw [Real.dist_eq, abs_sub_comm]
    exact abs_sub_round y
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor

Mathlib's growth result, restated:

growth_at_least_linearLean 4Applies a library theoremFormally verified
/-- **Growth is at least linear.** If a finite set `X ∋ 1` generates an infinite group, then the
`n`-fold product set `Xⁿ` (the ball of radius `n` in the word metric, for symmetric `X`) has at
least `n + 1` elements. This is Mathlib's `Finset.add_one_le_card_pow`. Gromov's theorem
characterises the other extreme: polynomial growth happens exactly for virtually nilpotent groups. -/
theorem growth_at_least_linear {G : Type*} [Group G] [DecidableEq G] {X : Finset G}
    (hX₁ : (1 : G) ∈ X) (hXinf : (Subgroup.closure (X : Set G) : Set G).Infinite) (n : ℕ) :
    n + 1 ≤ (X ^ n).card :=
  Finset.add_one_le_card_pow hX₁ hXinf n
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor

Sanov's theorem (Theorem 4). The powers AnA^n and BnB^n are packaged as homomorphisms from Z\Z; the two ping-pong estimates are the inequalities of the human proof; Mathlib's ping-pong lemma does the bookkeeping of Theorem 3 (for free products, via F2≅Z∗ZF_2 \cong \Z * \Z):

upperHomLean 4Formally verified
/-- The homomorphism `ℤ → SL(2, ℤ)`, `n ↦ [[1, 2n], [0, 1]]` (written multiplicatively, as
Mathlib's free products require). Its value at `1` is Sanov's matrix `A`, and its value at `n`
is `Aⁿ`. -/
def upperHom : Multiplicative ℤ →* SL(2, ℤ) where
  toFun n := ⟨!![1, 2 * n.toAdd; 0, 1], by simp [det_fin_two_of]⟩
  map_one' := by ext i j; fin_cases i <;> fin_cases j <;> simp
  map_mul' m n := by
    apply Subtype.ext
    change !![1, 2 * (m * n).toAdd; 0, 1] = !![1, 2 * m.toAdd; 0, 1] * !![1, 2 * n.toAdd; 0, 1]
    rw [Matrix.mul_fin_two]
    simp [toAdd_mul]
    ring
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
lowerHomLean 4Formally verified
/-- The homomorphism `ℤ → SL(2, ℤ)`, `n ↦ [[1, 0], [2n, 1]]`; its value at `1` is Sanov's matrix
`B`. -/
def lowerHom : Multiplicative ℤ →* SL(2, ℤ) where
  toFun n := ⟨!![1, 0; 2 * n.toAdd, 1], by simp [det_fin_two_of]⟩
  map_one' := by ext i j; fin_cases i <;> fin_cases j <;> simp
  map_mul' m n := by
    apply Subtype.ext
    change !![1, 0; 2 * (m * n).toAdd, 1] = !![1, 0; 2 * m.toAdd, 1] * !![1, 0; 2 * n.toAdd, 1]
    rw [Matrix.mul_fin_two]
    simp [toAdd_mul]
    ring
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
upper_pingLean 4Proved here from basic factsFormally verified
/-- **Ping.** A non-zero power `Aⁿ = [[1, 2n], [0, 1]]` sends a vector with `|x| < |y|` to one with
`|x'| > |y'|`. Indeed `(x', y') = (x + 2ny, y)` and `|x + 2ny| ≥ 2|n||y| − |x| ≥ 2|y| − |x| > |y|`. -/
theorem upper_ping (n : ℤ) (hn : n ≠ 0) (v : Fin 2 → ℤ) (hv : |v 0| < |v 1|) :
    |(upperHom (Multiplicative.ofAdd n) • v) 1| < |(upperHom (Multiplicative.ofAdd n) • v) 0| := by
  have h0 : (upperHom (Multiplicative.ofAdd n) • v) 0 = v 0 + 2 * n * v 1 := by
    change (!![1, 2 * n; 0, 1] *ᵥ v) 0 = _
    simp [Matrix.mulVec, dotProduct, Fin.sum_univ_two]
  have h1 : (upperHom (Multiplicative.ofAdd n) • v) 1 = v 1 := by
    change (!![1, 2 * n; 0, 1] *ᵥ v) 1 = _
    simp [Matrix.mulVec, dotProduct, Fin.sum_univ_two]
  rw [h0, h1]
  have hn1 : 1 ≤ |n| := Int.one_le_abs hn
  have hbig : 2 * |v 1| ≤ |2 * n * v 1| := by
    rw [abs_mul, abs_mul, abs_two]
    nlinarith [abs_nonneg (v 1)]
  have htri : |2 * n * v 1| ≤ |v 0 + 2 * n * v 1| + |v 0| := by
    have := abs_sub (v 0 + 2 * n * v 1) (v 0)
    simpa using this
  linarith
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
lower_pongLean 4Proved here from basic factsFormally verified
/-- **Pong.** Symmetrically, a non-zero power `Bⁿ = [[1, 0], [2n, 1]]` sends a vector with
`|x| > |y|` to one with `|x'| < |y'|`: `(x', y') = (x, y + 2nx)`. -/
theorem lower_pong (n : ℤ) (hn : n ≠ 0) (v : Fin 2 → ℤ) (hv : |v 1| < |v 0|) :
    |(lowerHom (Multiplicative.ofAdd n) • v) 0| < |(lowerHom (Multiplicative.ofAdd n) • v) 1| := by
  have h0 : (lowerHom (Multiplicative.ofAdd n) • v) 0 = v 0 := by
    change (!![1, 0; 2 * n, 1] *ᵥ v) 0 = _
    simp [Matrix.mulVec, dotProduct, Fin.sum_univ_two]
  have h1 : (lowerHom (Multiplicative.ofAdd n) • v) 1 = v 1 + 2 * n * v 0 := by
    change (!![1, 0; 2 * n, 1] *ᵥ v) 1 = _
    simp [Matrix.mulVec, dotProduct, Fin.sum_univ_two]
    ring
  rw [h0, h1]
  have hn1 : 1 ≤ |n| := Int.one_le_abs hn
  have hbig : 2 * |v 0| ≤ |2 * n * v 0| := by
    rw [abs_mul, abs_mul, abs_two]
    nlinarith [abs_nonneg (v 0)]
  have htri : |2 * n * v 0| ≤ |v 1 + 2 * n * v 0| + |v 1| := by
    have := abs_sub (v 1 + 2 * n * v 0) (v 1)
    simpa using this
  linarith
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor
sanov_freeLean 4Proved here from basic factsFormally verified
/-- **Sanov's theorem (1947).** The matrices `A = [[1, 2], [0, 1]]` and `B = [[1, 0], [2, 1]]`
generate a free group of rank two inside `SL(2, ℤ)`: the homomorphism from the free group on two
letters sending the letters to `A` and `B` is injective, so no non-trivial reduced word in
`A^{±1}, B^{±1}` equals the identity. Proof by **ping-pong** on `ℤ²`: let `X₀ = {|x| > |y|}` and
`X₁ = {|x| < |y|}`; non-zero powers of `A` send `X₁` into `X₀` (`upper_ping`) and non-zero powers
of `B` send `X₀` into `X₁` (`lower_pong`). Mathlib's ping-pong lemma for free products
(`Monoid.CoprodI.lift_injective_of_ping_pong`) turns these two estimates into injectivity, via
`F₂ ≅ ℤ * ℤ` (`freeGroupEquivCoprodI`). -/
theorem sanov_free : Function.Injective (FreeGroup.lift ![sanovA, sanovB]) := by
  classical
  -- The ping-pong table: `X 0 = {|x| > |y|}` and `X 1 = {|x| < |y|}`.
  let X : Fin 2 → Set (Fin 2 → ℤ) := ![{v | |v 1| < |v 0|}, {v | |v 0| < |v 1|}]
  let H : Fin 2 → Type := fun _ => FreeGroup Unit
  let f : ∀ i, H i →* SL(2, ℤ) := fun i => FreeGroup.lift fun _ => ![sanovA, sanovB] i
  -- A free group is the free product of copies of `ℤ = FreeGroup Unit`.
  have hlift : FreeGroup.lift ![sanovA, sanovB] =
      (Monoid.CoprodI.lift f).comp (@freeGroupEquivCoprodI (Fin 2)).toMonoidHom := by
    refine FreeGroup.ext_hom _ _ fun i => ?_
    simp only [f, MonoidHom.coe_comp, MulEquiv.coe_toMonoidHom, Function.comp_apply,
      freeGroupEquivCoprodI_apply]
    rw [FreeGroup.lift_apply_of, FreeGroup.lift_apply_of, Monoid.CoprodI.lift_of,
      FreeGroup.lift_apply_of]
  rw [hlift, MonoidHom.coe_comp]
  refine Function.Injective.comp ?_ (MulEquiv.injective _)
  refine Monoid.CoprodI.lift_injective_of_ping_pong f ?_ X ?_ ?_ ?_
  · -- one factor has at least three elements
    right
    refine ⟨0, ?_⟩
    simp only [H]
    rw [FreeGroup.freeGroupUnitEquivInt.cardinal_eq, Cardinal.mk_denumerable]
    exact natCast_le_aleph0
  · intro i
    fin_cases i
    · exact ⟨![1, 0], by simp [X]⟩
    · exact ⟨![0, 1], by simp [X]⟩
  · intro i j hij
    fin_cases i <;> fin_cases j
    · exact absurd rfl hij
    · exact Set.disjoint_left.2 fun v h1 h2 => by simp [X] at h1 h2; linarith
    · exact Set.disjoint_left.2 fun v h1 h2 => by simp [X] at h1 h2; linarith
    · exact absurd rfl hij
  · intro i j hij
    refine FreeGroup.freeGroupUnitEquivInt.forall_congr_left.mpr ?_
    intro n hne1
    have hn : n ≠ 0 := by
      rintro rfl
      apply hne1
      simp [FreeGroup.freeGroupUnitEquivInt]
    change FreeGroup.lift (fun _ => ![sanovA, sanovB] i) (FreeGroup.of () ^ n) • X j ⊆ X i
    rw [map_zpow, FreeGroup.lift_apply_of]
    rw [Set.smul_set_subset_iff]
    fin_cases i <;> fin_cases j
    · exact absurd rfl hij
    · intro v hv
      have hpow : sanovA ^ n = upperHom (Multiplicative.ofAdd n) := by
        rw [sanovA, ← map_zpow, ← ofAdd_zsmul, smul_eq_mul, mul_one]
      change |v 0| < |v 1| at hv
      change |(sanovA ^ n • v) 1| < |(sanovA ^ n • v) 0|
      rw [hpow]
      exact upper_ping n hn v hv
    · intro v hv
      have hpow : sanovB ^ n = lowerHom (Multiplicative.ofAdd n) := by
        rw [sanovB, ← map_zpow, ← ofAdd_zsmul, smul_eq_mul, mul_one]
      change |v 1| < |v 0| at hv
      change |(sanovB ^ n • v) 0| < |(sanovB ^ n • v) 1|
      rw [hpow]
      exact lower_pong n hn v hv
    · exact absurd rfl hij
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/GeometricGroupTheory.leanTry it in the Lean web editor

What is not formalised. The Švarc–Milnor lemma (Mathlib lacks proper cocompact actions on geodesic spaces in usable form), that quasi-isometry is symmetric (it needs a quasi-inverse), the relation between the word metric and the Cayley graph, hyperbolic groups, amenability and the Følner condition, Gromov's theorem and Banach–Tarski. The paradoxical decomposition of F2F_2 (Theorem 5) would be a good next formalisation project.

ComputationC

Counting balls and returning random walks

The first experiment counts balls in three Cayley graphs by breadth-first search. For Sanov's matrices it multiplies integer matrices and finds exactly 2⋅3r−12 \cdot 3^r - 1 distinct elements up to radius 8 — as in a free group. That is exhaustive evidence for words of length at most 16, and no more; the theorem covers all lengths. For the Heisenberg group it estimates the growth degree, which approaches 4.

Balls in Cayley graphs: polynomial and exponential growthPythonExact computationExhaustive finite checkNumerical approximationComputationally tested
"""Growth of groups: counting balls in Cayley graphs.

For three groups with two generators we count, by breadth-first search, the
ball B(r) of radius r in the word metric (all elements that are products of
at most r generators and their inverses):

* Z^2 with the standard generators: |B(r)| = 2r^2 + 2r + 1 (quadratic);
* the group generated by Sanov's matrices A = [[1, 2], [0, 1]] and
  B = [[1, 0], [2, 1]] in SL(2, Z), computed with integer matrices. If the
  group is free, |B(r)| = 2 * 3^r - 1, the ball in the 4-regular tree;
* the integer Heisenberg group (a, b, c)(a', b', c') = (a + a', b + b',
  c + c' + ab'), which is nilpotent; its growth is polynomial of degree 4
  (Bass-Guivarc'h formula: 1 * 2 + 2 * 1 = 4).

The counts are exact. The growth degrees are numerical estimates from a finite
range of radii; matching 2 * 3^r - 1 up to radius 8 checks Sanov's theorem
only for words of length at most 16.
"""

import math

def ball_sizes(identity, generators, multiply, radius):
    """Sizes |B(0)|, ..., |B(radius)| of balls in the Cayley graph.

    ``generators`` must be closed under inverses; elements must be hashable.
    """
    seen = {identity}
    frontier = [identity]
    sizes = [1]
    for _ in range(radius):
        new = []
        for g in frontier:
            for s in generators:
                h = multiply(g, s)
                if h not in seen:
                    seen.add(h)
                    new.append(h)
        frontier = new
        sizes.append(len(seen))
    return sizes

def z2_mul(g, h):
    """Addition in Z^2."""
    return (g[0] + h[0], g[1] + h[1])

Z2_GENERATORS = [(1, 0), (-1, 0), (0, 1), (0, -1)]

def mat_mul(g, h):
    """Product of 2x2 integer matrices stored as tuples (a, b, c, d)."""
    a, b, c, d = g
    e, f, p, q = h
    return (a * e + b * p, a * f + b * q, c * e + d * p, c * f + d * q)

SANOV_GENERATORS = [(1, 2, 0, 1), (1, -2, 0, 1), (1, 0, 2, 1), (1, 0, -2, 1)]

def heis_mul(g, h):
    """Multiplication in the integer Heisenberg group."""
    return (g[0] + h[0], g[1] + h[1], g[2] + h[2] + g[0] * h[1])

HEIS_GENERATORS = [(1, 0, 0), (-1, 0, 0), (0, 1, 0), (0, -1, 0)]

def growth_degree(sizes, r):
    """Estimate d in |B(r)| ~ c r^d from radii r and 2r."""
    return math.log(sizes[2 * r] / sizes[r]) / math.log(2)

def main():
    z2 = ball_sizes((0, 0), Z2_GENERATORS, z2_mul, 12)
    sanov = ball_sizes((1, 0, 0, 1), SANOV_GENERATORS, mat_mul, 8)
    heis = ball_sizes((0, 0, 0), HEIS_GENERATORS, heis_mul, 12)
    print("Ball sizes |B(r)| in Cayley graphs (exact, by breadth-first search)")
    print(" r     Z^2  2r^2+2r+1   <A,B> in SL2(Z)  2*3^r-1  Heisenberg")
    for r in range(9):
        print(f"{r:2d} {z2[r]:7d} {2 * r * r + 2 * r + 1:10d} "
              f"{sanov[r]:17d} {2 * 3 ** r - 1:8d} {heis[r]:11d}")
    free_ok = all(sanov[r] == 2 * 3 ** r - 1 for r in range(9))
    print(f"Sanov's group matches the free group up to radius 8: {free_ok}")
    print()
    print("Estimated growth degree log2(|B(2r)| / |B(r)|):")
    for r in (2, 4, 6):
        print(f"  r = {r}:  Z^2 {growth_degree(z2, r):.3f}"
              f"   Heisenberg {growth_degree(heis, r):.3f}")
    ratio = sanov[8] / sanov[7]
    print(f"Free group: |B(8)| / |B(7)| = {ratio:.4f} (exponential, base 3)")
    print()
    print("Epistemic status: the ball sizes are exact counts. Agreement with")
    print("2 * 3^r - 1 up to r = 8 is exhaustive evidence that no reduced word")
    print("of length <= 16 in A, B is trivial; Sanov's theorem (proved in the")
    print("lesson and in Lean) covers all lengths. The degree estimates come from")
    print("a finite range of radii; that the Heisenberg degree is exactly 4 is")
    print("the Bass-Guivarc'h theorem, not something this computation proves.")

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.

The second experiment computes exact return probabilities of simple random walk on Z2\Z^2 and on the 4-regular tree. On the tree the walk escapes at linear speed and returns exponentially rarely: p(2n)1/2n→3/2p(2n)^{1/2n} \to \sqrt3/2, the spectral radius, which is less than 1 — Kesten's signature of non-amenability.

Return probabilities of random walks: Z^2 versus the free groupPythonExact computationNumerical approximationComputationally tested
"""Random walks see amenability: Kesten's criterion, computed exactly.

Simple random walk on a Cayley graph steps to a uniformly random neighbour.
Let p(2n) be the probability of being back at the start after 2n steps.

* On Z^2, p(2n) = (C(2n, n) / 4^n)^2, which decays like 1/(pi n): slower
  than any exponential, so p(2n)^(1/2n) -> 1.
* On the free group F_2 (the 4-regular tree), the distance from the start is
  a birth-death chain: from distance k >= 1 it goes up with probability 3/4
  and down with probability 1/4. We compute p(2n) exactly with fractions;
  p(2n)^(1/2n) tends to sqrt(3)/2 = 0.866..., the spectral radius.

Kesten's theorem (1959): a finitely generated group is amenable exactly when
the spectral radius is 1. Exact rational arithmetic for finitely many n; the
limits are theorems, approached here numerically.
"""

import math
from fractions import Fraction

def z2_return(n):
    """Exact return probability after 2n steps of simple random walk on Z^2."""
    return Fraction(math.comb(2 * n, n), 4 ** n) ** 2

def z2_return_by_counting(n):
    """The same probability by counting all walks of length 2n (small n)."""
    counts = {(0, 0): 1}
    for _ in range(2 * n):
        new = {}
        for (x, y), c in counts.items():
            for p in ((x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)):
                new[p] = new.get(p, 0) + c
        counts = new
    return Fraction(counts.get((0, 0), 0), 4 ** (2 * n))

def tree_return(n, degree=4):
    """Exact return probability after 2n steps on the degree-regular tree."""
    up = Fraction(degree - 1, degree)
    down = Fraction(1, degree)
    dist = {0: Fraction(1)}
    for _ in range(2 * n):
        new = {}
        for k, pr in dist.items():
            if k == 0:
                new[1] = new.get(1, 0) + pr
            else:
                new[k + 1] = new.get(k + 1, 0) + pr * up
                new[k - 1] = new.get(k - 1, 0) + pr * down
        dist = new
    return dist.get(0, Fraction(0))

def nth_root(p, n):
    """p^(1/2n) as a float, computed through logarithms."""
    return math.exp(math.log(p) / (2 * n))

def main():
    print("Probability p(2n) of being back at the start after 2n steps")
    print("  2n    Z^2: p(2n)  p^(1/2n)  pi*n*p     F_2: p(2n)  p^(1/2n)")
    for n in (1, 2, 5, 10, 20, 40, 80):
        pz, pt = z2_return(n), tree_return(n)
        print(f"{2 * n:4d}  {float(pz):11.3e}  {nth_root(pz, n):8.5f}"
              f"  {math.pi * n * float(pz):6.4f}  {float(pt):11.3e}"
              f"  {nth_root(pt, n):8.5f}")
    print(f"Spectral radius of F_2 (Kesten): sqrt(3)/2 = {math.sqrt(3) / 2:.5f}")
    print(f"Formula for Z^2 checked by counting walks up to 2n = 12: "
          f"{all(z2_return(n) == z2_return_by_counting(n) for n in range(7))}")
    print(f"p(2) on the tree is exactly {tree_return(1)} (go out, come back).")
    print()
    print("Epistemic status: every p(2n) is an exact rational number. The")
    print("columns show Z^2 returning polynomially often (pi*n*p -> 1) and the")
    print("tree exponentially rarely, with n-th roots creeping towards 1 and")
    print("sqrt(3)/2. Finitely many n prove no limit: the limits are Kesten's")
    print("theorems; the roots converge slowly (corrections like n^(-c/n)).")

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Explore

Explore: covers, thin triangles and free groups

Švarc–Milnor in a picture. Z2=π1(T2)\Z^2 = \pi_1(T^2) acts on the plane, the universal cover of the torus; switch on the tiling view and every tile is one group element. Walking in the plane and walking in the Cayley graph of Z2\Z^2 are the same thing up to bounded error.

The plane above the torus

Each copy of the square is a translate by an element of ℤ² (the Klein bottle gives a different group acting on the same plane).

Keys: ↑ forward, ↓ back, ← and → turn, Space walks or stops. You can also drag it.

Torusa b a⁻¹ b⁻¹
Orientable
Yes
Euler characteristic
χ = 0

Gluing turns the 4 corners into V = 1, the 4 sides into E = 2 and the square into F = 1: V − E + F = 1 − 2 + 1 = 0

Same way round as at the start.

Sides crossed so far: 0

Opposite sides are glued with arrows pointing the same way. Walk off the right side and you come back on the left, the same way round. However it walks, the flatlander is never mirrored: the torus is orientable.

Copies of the square tile the plane, and the trail runs on smoothly from copy to copy. This plane is the universal cover of the torus.

Thin triangles. In the hyperbolic plane, drag the vertices as far towards the boundary as you can: the area never exceeds π\pi, and every side stays close to the union of the other two. That is δ\delta-hyperbolicity, and it is what makes surface groups hyperbolic groups.

Thin triangles in the hyperbolic plane

Compare with the flat plane, where triangles can be as fat as you like.

6.2°8.4°12.4°ABC

Poincaré disk model: the sides are arcs of circles that meet the boundary at right angles (dashed: each side extended). The boundary circle is infinitely far away.

  • ∠A6.2°
  • ∠B8.4°
  • ∠C12.4°

∠A + ∠B + ∠C = 27.1°

Angle defect (180° − sum)
152.9° = 2.669 rad
Area (curvature −1), measured numerically
2.669

π − (∠A + ∠B + ∠C) = AreaIn the hyperbolic plane with curvature −1, the defect in radians equals the area. The area is computed separately, by numerical integration.

∠A + ∠B + ∠C − π = K · Area

Flat planeK = 0∠A+∠B+∠C = 180°
SphereK = 1/R²∠A+∠B+∠C > 180°
Hyperbolic planeK = −1∠A+∠B+∠C < 180°

This is a first glimpse of the Gauss–Bonnet theorem: for a triangle whose sides are geodesics (shortest paths), the angle sum minus π equals the total curvature inside it. Here the curvature K is the same everywhere; on other surfaces you add up (integrate) K over the area.

A free group you can draw. The plane with two punctures has fundamental group F2F_2, generated by loops around the two holes. The commutator loop winds zero times around each hole yet cannot be shrunk — a non-trivial element invisible to abelian invariants.

Loops around two holes

The fundamental group is free on the two loops; winding numbers only see its abelianisation ℤ².

p₁p₂

Drag a hole to move it. Press Play to send the point around the loop, or use the slider. The small square marks the start.

Winding number around p₁−1

(1/2πi)∮ dz/(z − p₁) ≈ −1.000 + 0.000i

Winding number around p₂1

(1/2πi)∮ dz/(z − p₂) ≈ 1.000 + 0.000i

Turns swept so far by each dashed arrow:

p₁: 0.00p₂: 0.00

The winding number is found by adding up the small changes in direction of the arrow from the hole to the moving point, and dividing the total by 360°. Counter-clockwise counts as positive.

With two holes, the winding numbers around each hole are still invariants, but they no longer tell the whole story. The fundamental group is now the free group on two generators: a loop that goes around p₁, then p₂, then p₁ backwards, then p₂ backwards winds 0 times around each hole, yet it cannot be shrunk to a point.

A link to complex analysis: think of the plane as the complex numbers and of a hole as a point a. Then (1/2πi)∮ dz/(z − a) equals the winding number around a. The values above are computed numerically along the loop.

Exercises

Exercises

1. Geometric group theory

Warm-upHuman

Let F2F_2 be the free group on a,ba, b with generating set S={a±1,b±1}S = \{a^{\pm1}, b^{\pm1}\}. How many elements does the ball BS(3)B_S(3) of radius 33 contain (including the identity)?

2. Geometric group theory

CoreHuman

Which of these pairs of finitely generated groups are quasi-isometric? (Choose all that apply.)

Choose all that apply

3. Geometric group theory

CoreHuman

The group Z\mathbb{Z} acts on R2\mathbb{R}^2 by n⋅(x,y)=(x+n,y)n \cdot (x, y) = (x + n, y). Yet Z\mathbb{Z} is not quasi-isometric to R2\mathbb{R}^2. Which hypothesis of the Švarc–Milnor lemma fails?

Choose one

4. Geometric group theory

CoreHuman

In the ping-pong lemma, X1,X2X_1, X_2 are disjoint and non-empty, an(X2)⊆X1a^n(X_2) \subseteq X_1 and bn(X1)⊆X2b^n(X_1) \subseteq X_2 for n≠0n \ne 0. For w=a2b−5a−1w = a^{2} b^{-5} a^{-1}, which inclusion does the proof establish, and why does it show w≠1w \ne 1?

Choose one

5. Geometric group theory

CoreHuman

The integer Heisenberg group H3(Z)H_3(\mathbb{Z}) has lower central series G1=H3(Z)⊃G2=Z⊃G3=1G_1 = H_3(\mathbb{Z}) \supset G_2 = Z \supset G_3 = 1, where Z≅ZZ \cong \mathbb{Z} is the centre, and G1/G2≅Z2G_1 / G_2 \cong \mathbb{Z}^2. By the Bass–Guivarc'h formula, what is the degree dd of polynomial growth, ∣B(r)∣∼rd|B(r)| \sim r^d?

6. Geometric group theory

CoreFormal

Let sanovA sanovB : SL(2, ℤ) be Sanov's matrices. Which Lean statement says that they generate a free group of rank 2?

Choose one

7. Geometric group theory

StretchHuman

Which of these groups are amenable? (Choose all that apply.)

Choose all that apply

8. Geometric group theory

StretchHuman

Which statement about the Banach–Tarski paradox is correct?

Choose one

9. Geometric group theory

StretchComputational

Write ball_size(generators, multiply, identity, r) returning ∣B(r)∣|B(r)|, the number of group elements that are products of at most rr generators, by breadth-first search. The generators are assumed closed under inverses. Test it on Z\mathbb{Z} with generating set {±2,±3}\{\pm 2, \pm 3\}, where ∣B(1)∣=5|B(1)| = 5 and ∣B(2)∣=13|B(2)| = 13.

Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Common misconceptionsH

Common misconceptions

Misconception

"The Cayley graph is determined by the group." It depends on the generating set: Z\Z with {±1}\{\pm1\} is a line, with {±2,±3}\{\pm2, \pm3\} a graph with triangles. What depends only on the group is its quasi-isometry class (Theorem 1). Geometric group theory studies properties that do not see the choice.

Misconception

"Banach–Tarski contradicts measure theory." Lebesgue measure is countably additive and rotation-invariant on the measurable sets; the pieces in the Banach–Tarski decomposition are not measurable. What the paradox does show is that no finitely additive, isometry-invariant measure extends volume to all subsets of R3\R^3 — because the isometry group contains F2F_2 (Theorem 5).

Misconception

"Quasi-isometric groups are nearly isomorphic." Quasi-isometries ignore finite data: Z\Z and Z×S3\Z \times S_3 are quasi-isometric, though one is abelian and torsion-free and the other is neither; F2F_2 and F3F_3 are quasi-isometric; all finite groups are quasi-isometric to the trivial group. Even virtual solvability is not a quasi-isometry invariant (Dyubina, now Erschler, 2000).

Misconception

"A group without free subgroups is amenable." This was von Neumann's question (often called the von Neumann conjecture). It is false: Ol'shanskii (1980) constructed non-amenable groups without free subgroups, Adyan (1982) showed the free Burnside groups B(m,n)B(m, n) of large odd exponent are examples, and Ol'shanskii and Sapir (2003) found finitely presented ones.

Misconception

"Amenable means subexponential growth." Subexponential growth implies amenability (balls are Følner sets along a subsequence), but not conversely: the lamplighter group Z/2≀Z\Z/2 \wr \Z and the solvable Baumslag–Solitar groups BS(1,n)BS(1, n), n≥2n \ge 2, are amenable with exponential growth.

ViewpointsH

Many ways of seeing

Geometry— Groups as symmetries of spaces

For a geometer the Švarc–Milnor lemma turns the algebra of a group into the geometry of any space it acts on nicely. Mostow rigidity (1968) is the extreme case: for n≥3n \ge 3, a closed hyperbolic nn-manifold is determined up to isometry by its fundamental group, so the group is the geometry. In the other direction, the Cayley graph supplies a geometry when no manifold is in sight, and one can then ask whether it is negatively curved (hyperbolic groups), non-positively curved (CAT(0) groups, which act geometrically on CAT(0) spaces), or flat (virtually abelian groups). See Riemannian geometry and non-Euclidean geometry.

Topology— Fundamental groups, ends and boundaries

Every finitely presented group is the fundamental group of a closed 4-manifold, and geometric group theory is in large part the study of fundamental groups (see the fundamental group). Topological invariants of the Cayley graph at infinity become group invariants: the number of ends is 0, 1, 2 or infinite (Freudenthal, Hopf), and is infinite exactly for groups that split non-trivially over finite subgroups, other than virtually-Z\Z ones (Stallings). A hyperbolic group has a Gromov boundary, a compact space on which it acts: a Cantor set for F2F_2, a circle for surface groups, a 2-sphere for closed hyperbolic 3-manifold groups — which is where Cannon's conjecture lives. The fundamental groups of 3-manifolds tie the subject to low-dimensional topology.

Probability— Random walks hear the shape of a group

Run simple random walk on a Cayley graph. On Zd\Z^d it returns with probability p(2n)∼c n−d/2p(2n) \sim c\, n^{-d/2}, recurrent exactly for d≤2d \le 2 (Pólya, 1921); by a theorem of Varopoulos (1980s, using Gromov's theorem), the only finitely generated groups on which it is recurrent are the finite extensions of {0}\{0\}, Z\Z and Z2\Z^2. On a non-amenable group the walk returns exponentially rarely (Kesten, 1959) and escapes at linear speed; its exit behaviour at infinity is described by the Poisson boundary, which for hyperbolic groups is the Gromov boundary with harmonic measure. The second experiment shows the two regimes side by side. See random structures and Markov chains.

Analysis— Invariant means and the analysis of amenability

Amenability is an analytic property with many faces: an invariant mean on ℓ∞(G)\ell^\infty(G); Følner sets with small boundary; almost invariant vectors in ℓ2(G)\ell^2(G) for the regular representation; the spectral radius of the random-walk operator being 1 (Kesten). Its opposite extreme is Kazhdan's property (T) — every unitary representation with almost invariant vectors has invariant vectors — enjoyed by SL(n,Z)\mathrm{SL}(n, \Z) for n≥3n \ge 3, and used by Margulis to build the first explicit expander graphs. The Banach–Tarski paradox is the analyst's way of saying "SO(3)\mathrm{SO}(3) is not amenable as a discrete group". See functional analysis.

Logic— What can be decided about a group?

Dehn's word problem is undecidable in general: Novikov (1955) and Boone (1958) constructed finitely presented groups with unsolvable word problem, and by the Adyan–Rabin theorem (1955–58) almost every non-trivial property of finitely presented groups — being trivial, finite, abelian, free — is undecidable from a presentation. Geometry restores decidability: hyperbolic groups have word problems solvable in linear time by Dehn's algorithm, and their isomorphism problem is decidable (Sela for torsion-free groups, 1995; Dahmani and Guirardel in general, 2011). See computability.

Algebra— Linear groups and the Tits alternative

The algebraist's free subgroups come from matrices. Sanov's theorem is the simplest case of the Tits alternative (1972): a finitely generated subgroup of GL(n,k)\mathrm{GL}(n, k), kk a field, either contains F2F_2 or has a solvable subgroup of finite index. Combined with Milnor–Wolf, it gives a growth dichotomy for linear groups: finitely generated linear groups have polynomial or exponential growth, never intermediate. Nilpotent groups, whose growth degree is read off from the ranks of their lower central series (Bass–Guivarc'h), are exactly the algebraic structure that Gromov's theorem finds inside groups of polynomial growth. See groups.

History & global context

History and global context

  • 1878–1912: pictures of groups and Dehn's problems. Arthur Cayley (England) drew the graphs now named after him, as "colour groups", in 1878. Max Dehn (Germany) posed the word, conjugacy and isomorphism problems (1911–12) and solved the first two for surface groups using hyperbolic geometry.
  • 1914–1929: paradoxes. Felix Hausdorff found a paradoxical decomposition of the sphere (1914); Stefan Banach and Alfred Tarski, in Lwów (now Lviv), proved the ball paradox (1924); John von Neumann identified the role of the group and introduced amenable groups (1929). The word "amenable" is due to Mahlon Day (1949).
  • 1940s–1960s: free subgroups, undecidability, growth. Ivan Sanov (USSR) proved his theorem in 1947; Pyotr Novikov (USSR, 1955) and William Boone (USA, 1958) proved the word problem undecidable; Erling Følner (Denmark) gave his criterion (1955); Harry Kesten (Netherlands–USA) connected random walks and amenability (1959); Albert Švarc (USSR, 1955) and John Milnor (USA, 1968) related groups to the geometry of universal covers, and Milnor and Joseph Wolf (1968) launched the study of growth.
  • 1970s–1980s: the subject takes shape. Jacques Tits (Belgium–France) proved his alternative (1972); Hyman Bass and Yves Guivarc'h computed the growth of nilpotent groups; Mikhael Gromov (USSR–France) proved the polynomial growth theorem (1981) and introduced hyperbolic groups (1987), with ideas also due to Eliyahu Rips (Israel); Rostislav Grigorchuk (USSR) constructed groups of intermediate growth (1984); Alexander Ol'shanskii and Sergei Adyan (USSR) built monsters disproving the von Neumann conjecture.
  • 2000s–present. Daniel Wise, Frédéric Haglund and Ian Agol developed cube complexes and proved the virtual Haken conjecture (2013); Bruce Kleiner gave a new proof of Gromov's theorem (2010); Emmanuel Breuillard, Ben Green and Terence Tao classified approximate groups (2012). The field now spans topology, geometry, probability, logic and dynamics.
Further reading

Further reading

A suggested path: Clay and Margalit for the pictures and the spirit; Löh for a careful first course; Bridson and Haefliger for non-positive curvature and hyperbolic groups; Druțu and Kapovich or de la Harpe for the full landscape.

  • Matt Clay and Dan Margalit (editors), Office Hours with a Geometric Group Theorist (2017).
  • Clara Löh, Geometric Group Theory: An Introduction (2017).
  • Martin R. Bridson and André Haefliger, Metric Spaces of Non-Positive Curvature (1999).
  • Pierre de la Harpe, Topics in Geometric Group Theory (2000).
  • Cornelia Druțu and Michael Kapovich, Geometric Group Theory (2018).
  • Étienne Ghys and Pierre de la Harpe (editors), Sur les groupes hyperboliques d'après Mikhael Gromov (1990).
  • Mikhael Gromov, "Groups of polynomial growth and expanding maps", Publications Mathématiques de l'IHÉS 53 (1981); "Hyperbolic groups", in Essays in Group Theory (1987).
  • Grzegorz Tomkowicz and Stan Wagon, The Banach–Tarski Paradox (2nd edition, 2016).
  • Roger C. Lyndon and Paul E. Schupp, Combinatorial Group Theory (1977).