Part III · The Deep Theory

Chapter 7: Extremal Graph Theory

Created by

How much bulk must a graph have before a shape is forced to appear inside it? After this chapter you will know the exact answer for cliques, the asymptotic answer for every pattern at once, and you will be able to read the statement that every large dense graph is a small weighted graph plus noise.

One question in many disguises

Here is the entire chapter in one sentence. How much bulk must a graph have before a particular shape is forced to appear somewhere inside it?

Try the smallest interesting case by hand. Take five vertices and draw edges, as many as you like, but avoid making a triangle. Six edges is achievable: split the five vertices into a pair and a triple, and join every vertex of the pair to every vertex of the triple. Any three vertices must then include two from the same side, and two vertices on the same side are not joined, so no triangle exists. Seven edges is not achievable, as you can check by trying. On five vertices, six is exactly the triangle threshold: at six you can still dodge, at seven you cannot.

That experiment is the subject in miniature. Extremal graph theory studies such thresholds and the graphs sitting exactly at the boundary, with as much bulk as possible and still no forbidden shape. Those record holders are called extremal graphs, and the first surprise is how organised they are: pushing a graph to the limit of avoidance forces it into a rigid pattern.

"Bulk" will mean one of four things in this chapter: the total number of edges, the average degree \(d(G)\) (from Chapter 1: the average number of edges touching a vertex), the chromatic number \(\chi(G)\) (from Chapter 5: the fewest colours needed so that adjacent vertices differ), and the girth \(g(G)\) (the length of the shortest cycle). The last one is a strange kind of bulk, since large girth means an absence of short cycles, and yet it will turn out to force enormous structure.

"Shape" will mean one of three things, all from Chapter 1, and their differences run the whole chapter:

These three nest in one direction. A subgraph copy is a topological copy whose paths have length 1, and a topological copy becomes a minor once each path is contracted. So subgraphs are hardest to find and minors easiest, and the forcing costs run the other way: subgraphs are expensive to force, minors cheap. Learners invert this constantly, so fix the direction now.

The chapter splits into two halves. The first answers the threshold question. Subgraph containment needs a constant fraction of all possible edges, the dense regime, where Turán's theorem is exact for cliques and the Erdős–Stone theorem is asymptotic for every pattern at once. Minor containment needs only a linear number of edges, the sparse regime, which closes with Hadwiger's conjecture, widely considered the deepest open problem in graph theory.

The second half teaches a technique: Szemerédi's regularity lemma, which says that every large graph, however wild, looks at coarse resolution like a small weighted graph plus noise. Two reusable tools follow, the counting lemma and the removal lemma, and then a result with no graphs in it at all: every set of integers that keeps a fixed percentage of the whole numbers contains three evenly spaced numbers. A theorem about arithmetic, proved by drawing a graph.

This is the hardest chapter in Part III. Take it in the order written. Everything after the regularity lemma depends on being comfortable with what that lemma says, and the plain-language version of it is given at length before a single \(\epsilon\) appears.

A graph \(G\) contains a subdivided triangle, \(TK^3 \subseteq G\). Which of these must also be true?

  1. \(G\) contains a triangle as a subgraph
  2. \(K^3\) is a minor of \(G\)
  3. \(G\) has no cycle of length more than 3
  4. \(G\) needs at least three colours
Answer: B. Contract each subdivided path back to a single edge and the topological copy becomes a minor, so \(TH \subseteq G\) always gives \(H \preccurlyeq G\). Option A runs the nesting backwards: the paths may be long, and a long cycle holds no triangle.

New notation in this chapter

Twelve symbols are genuinely new; the rest are recalled from earlier chapters and re-glossed where they appear. If \(X \subseteq A\) ("X is a subset of A") is still unfamiliar, Chapter 0 is the bootstrap.

SymbolRead it asMeaningTiny example
\(\mathrm{ex}(n, H)\)"the extremal number of H at n"The largest number of edges an \(n\)-vertex graph can have while containing no copy of \(H\) as a subgraph.\(\mathrm{ex}(5, K^3) = 6\): six edges dodge a triangle on 5 vertices, seven cannot.
\(T^{r-1}(n)\)"the Turán graph"Split \(n\) vertices into \(r-1\) teams of nearly equal size and join every pair from different teams.\(T^3(8)\) has teams of sizes 3, 3, 2.
\(t_{r-1}(n)\)"the Turán edge count"The number of edges of \(T^{r-1}(n)\).\(t_3(8) = 3{\cdot}3 + 3{\cdot}2 + 3{\cdot}2 = 21\).
\(K^r\)"the complete graph on r vertices"(From Chapter 1.) Every pair joined. Diestel writes \(K^r\) where many books write \(K_r\); this course follows Diestel.\(K^3\) is a triangle, \(K^4\) has 4 vertices and 6 edges.
\(K_{r,s}\)"complete bipartite"(From Chapter 1.) Two sides of sizes \(r\) and \(s\), every cross pair joined, nothing inside a side.\(K_{2,3}\) has 6 edges and no triangle.
\(K^r_s\)"the blown-up clique"The complete \(r\)-partite graph with \(s\) vertices in every part. \(K^r_1 = K^r\).\(K^3_2\) is the octahedron: 6 vertices, 12 edges, 8 triangles.
\(\lVert X, Y \rVert\)"the number of X-to-Y edges"For disjoint vertex sets \(X\) and \(Y\), how many edges have one end in each.In \(K_{2,3}\) with sides \(X, Y\): \(\lVert X, Y\rVert = 6\).
\(d(X, Y)\)"the density of the pair X, Y"\(\lVert X, Y\rVert / (|X|\,|Y|)\): the fraction of the possible cross edges that are present, a number between 0 and 1.\(|X| = |Y| = 10\) with 40 cross edges gives \(d(X,Y) = 0.4\).
\(\epsilon\)-regular pair"epsilon-regular"A pair of sets in which every reasonably large window has about the same density as the whole pair.A random bipartite graph is \(\epsilon\)-regular for small \(\epsilon\), with high probability.
\(\{V_0, V_1, \dots, V_k\}\)"an epsilon-regular partition"Equal chunks \(V_1, \dots, V_k\) plus a small leftover bin \(V_0\), such that all but a few chunk pairs are \(\epsilon\)-regular.The output the regularity lemma guarantees.
\(V_0\)"the exceptional set"The leftover bin of the partition, small and ignored when regularity is judged. It exists so the other parts can be exactly equal in size.With \(n = 103\) and \(k = 10\) parts of size 10, \(V_0\) holds 3 vertices.
\(R\)"the regularity graph"The small summary graph: one vertex per chunk, joined when the chunk pair is \(\epsilon\)-regular and has density at least \(d\).If only the pairs among \(V_1, V_2, V_3\) qualify, \(R\) is a triangle.
\(R_s\)"R blown up by s"Replace each vertex of \(R\) by \(s\) copies and each edge by all \(s^2\) cross edges.For \(R = K^3\) and \(s = 2\), \(R_s = K^3_2\).
\(\hom(H, G)\)"the homomorphism count"How many maps from the vertices of \(H\) to the vertices of \(G\) send every edge of \(H\) to an edge of \(G\). Non-adjacent vertices may collapse together.\(\hom(K^2, G) = 2\lVert G\rVert\): each edge counted in both directions.
\(r_k(n)\)"r-k of n"The largest size of a subset of \(\{0, 1, \dots, n-1\}\) containing no \(k\) evenly spaced numbers.\(r_3(5) = 4\): the set \(\{0,1,3,4\}\) has no three evenly spaced members.
\(K(x, d)\)"the defining triangle"In the proof about arithmetic progressions: the triangle on the three vertices \(x\), \(x+d\) and \(2x+d\), one for each starting number \(x\) and each gap \(d\).\(K(2,1)\) is the triangle on 2, 3 and 5.
upper density"positive upper density"A set \(A\) of whole numbers keeps at least a fixed share \(\delta\) of \(\{0, \dots, n-1\}\) for infinitely many \(n\).The even numbers have upper density \(1/2\).
\(W\)"the Wagner graph"Eight vertices in a ring, each also joined to the vertex opposite. 12 edges, needs 3 colours, has no \(K^5\) minor.Figure 7.8.
\(H \preccurlyeq G\)"H is a minor of G"(From Chapter 1.) \(H\) appears after deleting parts of \(G\) and contracting connected branch sets.Contracting the five spokes of the Petersen graph gives \(K^5\).
\(TH \subseteq G\)"G contains a subdivided H"(From Chapter 1.) A copy of \(H\) whose edges have been stretched into internally disjoint paths.Any cycle is a \(TK^3\).
\(d(G),\ \delta(G),\ g(G)\)"average degree, minimum degree, girth"(From Chapter 1.) Average number of edges at a vertex; smallest such number; length of the shortest cycle.For the Petersen graph: \(d = \delta = 3\) and \(g = 5\).
Common mistake

The letter \(d\) is overloaded here, and mixing up its jobs is the commonest source of confusion. \(d(G)\) is average degree. \(d(X,Y)\) is the density of a pair of vertex sets. A bare \(d\) in the regularity machinery is a density threshold chosen in advance. In the last section \(d\) is the gap of an arithmetic progression. Read the sentence, not the letter. Diestel also writes \(\varepsilon(G)\) for the ratio of edges to vertices; this chapter uses average degree instead, so that \(\epsilon\) stays free for its regularity job.

Reading the table, what is \(K^3_2\)?

  1. The complete graph on 3 vertices with every edge doubled
  2. The complete bipartite graph with sides of sizes 3 and 2
  3. The complete 3-partite graph with 2 vertices per part: 6 vertices, 12 edges
  4. A triangle with 2 extra vertices hanging off it
Answer: C. The superscript counts the parts and the subscript counts the vertices inside each part, so \(K^3_2\) is the octahedron. Option B is \(K_{3,2}\), a different symbol whose two sides have sizes 3 and 2.

Extremal numbers and the record holders

Fix a graph \(H\), the forbidden pattern, and a number \(n\) of vertices. Among all graphs on \(n\) vertices that contain no copy of \(H\), some have more edges than others. The record is what we want to name.

Definition — extremal number and extremal graph

\(\mathrm{ex}(n, H)\) is the largest number of edges that a graph on \(n\) vertices can have while containing no copy of \(H\) as a subgraph. A graph achieving that record is an extremal graph for \(n\) and \(H\). In plain words: among all the ways of avoiding \(H\), the extremal graphs are the greediest ones, and \(\mathrm{ex}(n,H)\) is how greedy you can be.[1]

A weaker property sounds like the same thing and is not. Call a graph edge-maximal without \(H\) if it contains no \(H\) but adding any single new edge creates one. Edge-maximal means locally stuck. Extremal means globally best. Every extremal graph is edge-maximal, since if you could add an edge you would not have been at the record. The converse fails, and Figure 7.1 shows the standard example.

two triangles: 6 edges star: 5 edges a1 a2 a3 b1 b2 b3 c u1 u2 u3 u4 u5 edge-maximal and extremal edge-maximal, not extremal
Figure 7.1. The forbidden pattern is a path with three edges. Neither graph contains one: the longest path in a triangle or a star has two edges. In both, adding any edge creates one; the dashed gold edges are examples (on the left, \(a_2 a_3 b_2 b_3\); on the right, \(u_3 c u_1 u_2\)). So both are edge-maximal. Only the left graph is extremal, because 6 beats 5, and 6 is the most possible on six vertices.
Common mistake

Two errors to disarm before going further. First: "I cannot add an edge, so I have the most edges." No. The star in Figure 7.1 is stuck at five edges while another graph on the same six vertices reaches six. Second: \(\mathrm{ex}(n, H)\) forbids \(H\) as a subgraph, not as an induced subgraph. A set of vertices carrying a copy of \(H\) plus some extra edges still counts as a copy of \(H\). Readers who slip into the induced reading will compute the Turán graph wrongly.

Four vertices of \(K^5\) carry a 4-cycle plus two extra chords. In the sense \(\mathrm{ex}(n, H)\) uses, does \(K^5\) contain a 4-cycle?

  1. Yes: extra edges among those four vertices do not stop it counting as a copy
  2. No: a copy must be induced, and the chords spoil it
  3. Only once the two chords are deleted
  4. No: in a copy of a 4-cycle every vertex must have degree exactly 2
Answer: A. \(\mathrm{ex}(n,H)\) forbids \(H\) as a subgraph, not as an induced subgraph, so surplus edges are irrelevant. The induced reading, offered by option B, is what makes readers compute the Turán graph wrongly.

Turán's theorem: the exact answer for cliques

Now fix the forbidden pattern to be the complete graph \(K^r\), that is, \(r\) vertices with all \(\binom{r}{2}\) edges among them. How many edges can an \(n\)-vertex graph carry with no \(r\) vertices all mutually joined?

There is an obvious way to dodge a \(K^r\). Split the \(n\) vertices into \(r-1\) teams, and join two vertices exactly when they are on different teams. Any \(r\) vertices must then contain two teammates, by the pigeonhole principle, and teammates are not joined, so no \(K^r\) appears. To make this construction as dense as possible you want the teams as equal in size as you can manage, because moving one vertex from a large team to a small team strictly gains edges. That balanced construction has a name.

Definition — Turán graph

The Turán graph \(T^{r-1}(n)\) is the complete \((r-1)\)-partite graph on \(n\) vertices whose part sizes differ by at most 1: split the vertices into \(r-1\) nearly equal parts and join every pair of vertices in different parts. Its number of edges is written \(t_{r-1}(n)\). When \(n \leq r-1\) the convention is \(T^{r-1}(n) = K^n\), that is, every vertex gets its own part.[1]

balanced 3, 3, 2: 21 edges unbalanced 4, 3, 1: 19 edges a b c e f g u v every pair from different parts is joined same rule, worse balance
Figure 7.2. Left: the Turán graph \(T^3(8)\), with parts \(\{a,b,c\}\), \(\{e,f,g\}\), \(\{u,v\}\) shown in three colours. Its edge count is \(3{\cdot}3 + 3{\cdot}2 + 3{\cdot}2 = 21\), so \(t_3(8) = 21\). No \(K^4\) exists here: any four vertices include two from one part, and those two are not joined. Right: the same construction with parts of sizes 4, 3, 1 gives only \(12 + 4 + 3 = 19\) edges. Balance wins.

Turán's theorem says that this obvious construction is not merely good, it is the unique best.

Theorem — Turán's theorem (Turán, 1941)

For every integer \(r > 1\), every graph on \(n\) vertices with no \(K^r\) and with the maximum possible number of edges is a Turán graph \(T^{r-1}(n)\). In particular \(\mathrm{ex}(n, K^r) = t_{r-1}(n)\). In plain words: the densest way to avoid \(r\) mutually joined vertices is to split into \(r-1\) balanced teams and join everything across teams, and nothing else achieves the record.[1]

A man in a suit at a blackboard covered in handwritten mathematical formulas, photographed from the side in a lecture room.
Plate 7.A. Turán lecturing as a visitor from Budapest at Karl Marx University in Leipzig, 29 September 1955, fourteen years after the theorem above. The board carries power-sum inequalities, his other long-running subject, not extremal graphs. The room is the mathematics institute's small lecture hall. Bundesarchiv, 1955. Wikimedia Commons, CC BY-SA 3.0 DE.
Intuition

Avoiding a clique is a constraint about small groups, yet the optimal answer is a single global pattern. The reason is that being non-adjacent is, in the record holders, an equivalence relation: "we are on the same team". If non-adjacency ever failed to be transitive, meaning some vertex is a stranger to two people who know each other, then the graph is spending its edges badly and can be rearranged into something with more edges and still no clique. Push that rearranging to its limit and the teams appear on their own.

The smallest case, \(r = 3\), is Mantel's theorem from 1907: a triangle-free graph on \(n\) vertices has at most \(\lfloor n^2/4 \rfloor\) edges, achieved by the balanced complete bipartite graph. Figure 7.3 runs the five-vertex version of the opening experiment.

x1 x2 y1 y2 y3 7th edge 6 edges, no triangle
Figure 7.3. \(T^2(5) = K_{2,3}\), the extremal triangle-free graph on five vertices, with \(\mathrm{ex}(5, K^3) = 6\) edges. Every edge runs left to right, so a triangle would need two vertices on one side. Adding any seventh edge must go inside a side; the gold dashed edge \(x_1 x_2\) closes the violet triangle \(x_1 x_2 y_1\). The same happens for every other choice.

Diestel gives two proofs.[1] The first is an induction on \(n\). An extremal graph \(G\) contains a \(K^{r-1}\), call it \(K\), since otherwise edges could be added. Delete the \(r-1\) vertices of \(K\); what is left must itself be extremal on \(n - r + 1\) vertices. Each remaining vertex sends at most \(r - 2\) edges into \(K\), since a vertex joined to all of \(K\) would complete a \(K^r\). Adding the three contributions gives exactly \(t_{r-1}(n)\), and equality everywhere forces the outside to be a Turán graph whose parts line up with \(K\), reassembling \(T^{r-1}(n)\).

The second proof is shorter and worth seeing, because it introduces a move that recurs in the subject.

Definition — vertex duplication

To duplicate a vertex \(v\), add a new vertex \(v'\) joined to exactly the neighbours of \(v\), and not joined to \(v\) itself. In plain words: clone a vertex, but do not wire the clone to the original. Because clone and original are strangers, duplication cannot create a complete subgraph that was not already present.[1]

Worked example

Let \(G\) be a triangle on \(y_1, y_2, z\) with one extra vertex \(x\) hanging off \(z\). Then \(x\) is a stranger to both \(y_1\) and \(y_2\), while \(y_1 y_2\) is an edge, so "non-adjacent" is not transitive here, and the second proof says \(G\) cannot be extremal. Watch the repair. Degrees: \(y_1\) has 2 neighbours, \(x\) has 1. Delete \(x\) (losing 1 edge) and duplicate \(y_1\) (gaining 2 edges). The count goes from 4 edges to 5, the vertex count stays at 4, and no \(K^4\) has appeared because \(y_1\) and its clone are not joined. What you end up with is exactly \(T^3(4)\), with parts \(\{y_1, y_1'\}, \{y_2\}, \{z\}\), and \(t_3(4) = 5\). The repair walked straight to the record holder.

before: 4 edges after: 5 edges, still no K4 y1 y2 z x deleted y2 y1 y1' z
Figure 7.4. Vertex duplication in action. The clone \(y_1'\) (violet) copies \(y_1\)'s neighbours \(y_2\) and \(z\) but is not joined to \(y_1\). One edge is lost with \(x\) and two are gained with the clone, so the total rises from 4 to 5, which is exactly \(t_3(4)\). The result is the complete 3-partite graph with parts \(\{y_1, y_1'\}\), \(\{y_2\}\), \(\{z\}\).

How dense is the record holder, as a fraction of everything possible? Write the edge density of a graph as \(\lVert G\rVert / \binom{|G|}{2}\), the share of all possible pairs that are actually joined. For the Turán graph this share settles down.

Lemma — the Turán density limit

\[ \lim_{n \to \infty} \frac{t_{r-1}(n)}{\binom{n}{2}} = \frac{r-2}{r-1}. \] In plain words: as the graph grows, the Turán graph occupies the fraction \(\frac{r-2}{r-1}\) of all possible edges. For triangle-free graphs (\(r = 3\)) that is \(1/2\); for \(K^4\)-free graphs it is \(2/3\); for \(K^5\)-free, \(3/4\).[1]

This number is the yardstick for everything dense in this chapter. Half of all possible edges is the exact price of triangle-freeness. Any more, in the long run, and a triangle appears.

In the real world

Turán's theorem is a statement about conflict. Build a graph whose vertices compete for a shared resource, with an edge whenever two of them clash; then \(r\) mutually clashing things force \(r\) separate resources. Compilers do exactly this when deciding which program variables live in fast CPU registers: one vertex per variable, an edge whenever two variables are alive at the same time, one colour per register. Chaitin's allocator at IBM built this interference graph and coloured it, spilling variables to slow memory when the colouring failed. It was designed for IBM's 801 project, ancestor of the PowerPC line, and the team raised the register count of the design from 16 to 32 partly because more colours meant less spilling.[9] Radio frequency assignment has the same shape, with transmitters as vertices and interference as edges, though real systems need separation distances rather than a bare "must differ" rule.[10] Turán's theorem is the capacity statement behind such pictures: past \(t_{r-1}(n)\) conflicts among \(n\) items, a clique of size \(r\) is unavoidable and \(r\) resources become mandatory.

You want as many edges as possible on 7 vertices with no \(K^4\), using the complete 3-partite construction. Which part sizes?

  1. 3, 2, 2
  2. 4, 2, 1
  3. 5, 1, 1
  4. 3, 3, 1
Answer: A. Balance wins: 3, 2, 2 gives \(6 + 6 + 4 = 16\) edges, against 15 for 3, 3, 1 and 14 for 4, 2, 1. Moving a vertex from a bigger part to a smaller one always gains edges, which is why the Turán graph's parts differ by at most 1.

As \(n\) grows, what share of all \(\binom{n}{2}\) possible edges does the Turán graph \(T^3(n)\) occupy?

  1. \(1/3\)
  2. \(1/2\)
  3. \(2/3\)
  4. \(3/4\)
Answer: C. \(T^3(n)\) is the record holder for avoiding \(K^4\), so \(r = 4\) and the limit \(\frac{r-2}{r-1}\) is \(2/3\). Option B, one half, is the triangle-free case \(T^2(n)\), where \(r = 3\).

Erdős–Stone: one theorem for every pattern at once

Turán's theorem answers the threshold question for cliques. What about every other forbidden pattern: a five-cycle, the Petersen graph, a tree, some graph you drew on a napkin? One theorem covers them all, and the answer turns out to depend on exactly one feature of the pattern.

The bridge is a family of graphs that sit between \(K^r\) and enormous size.

Definition — the blown-up clique \(K^r_s\)

\(K^r_s\) is the complete \(r\)-partite graph with \(s\) vertices in each part: take \(r\) groups of \(s\) vertices and join every pair from different groups. Setting \(s = 1\) recovers \(K^r\). Plainly: a \(K^r\) with every vertex replaced by a cluster of \(s\) clones.[1]

a1 a2 b1 b2 c1 c2 three parts of size 2, all 12 cross edges present
Figure 7.5. \(K^3_2\), the octahedron: six vertices, twelve edges. Picking one vertex from each part gives a triangle, and there are \(2 \times 2 \times 2 = 8\) of them; the violet one is \(a_1 b_1 c_1\). This is what "teeming with copies of \(K^r\)" means below, and it is also the shape a small summary graph turns into when every vertex is blown up into a cluster.
Theorem — Erdős–Stone (Erdős & Stone, 1946)

For all integers \(r \geq 2\) and \(s \geq 1\) and every \(\epsilon > 0\), there is an \(n_0\) such that every graph with \(n \geq n_0\) vertices and at least \(t_{r-1}(n) + \epsilon n^2\) edges contains \(K^r_s\). In plain words: go past the Turán threshold by any fixed positive share of the edges, and the reward jumps from a single \(K^r\) to a whole blown-up \(K^r\) with \(s\) vertices per part, for whatever \(s\) you named in advance.[1]

An elderly man in glasses and a young boy wearing a name badge sit on a leather sofa, both looking down at an open folder of papers on the man's lap.
Plate 7.B. Erdős with the ten-year-old Terence Tao, Adelaide, 1985, thirty-nine years after the theorem above. This is how he worked everywhere: no blackboard, no seminar, one problem and whoever happened to be in front of him. Three results in this chapter carry his name beside a collaborator's. Billy or Grace Tao, 1985. Wikimedia Commons, CC BY-SA 2.0.
Intuition

The surprise is the size of the jump. You would expect a small surplus of edges to buy a small reward, perhaps one extra clique. Instead a surplus that vanishes as a fraction of the whole (any fixed \(\epsilon\), however tiny) buys a structure containing \(s^r\) cliques. The graph has no middle gear: either it is essentially a Turán graph, or it contains vast blown-up cliques.

Feed that theorem a general pattern \(H\) and something clean falls out. Every \(H\) sits inside a big enough blown-up clique: if \(H\) needs \(\chi(H)\) colours, then colouring \(H\) sorts its vertices into \(\chi(H)\) groups with no edges inside a group, so \(H\) fits into \(K^{\chi(H)}_s\) once \(s\) is at least the size of the largest colour group. And in the other direction, the Turán graph \(T^{\chi(H)-1}(n)\) contains no \(H\) at all, since that graph can be coloured with \(\chi(H) - 1\) colours while \(H\) cannot. Squeeze the two bounds together.

Corollary — the asymptotic extremal formula (Erdős & Simonovits)

For every graph \(H\) with at least one edge, \[ \lim_{n \to \infty} \frac{\mathrm{ex}(n, H)}{\binom{n}{2}} = \frac{\chi(H) - 2}{\chi(H) - 1}. \] In plain words: the critical edge density that forces a copy of \(H\) depends only on how many colours \(H\) needs. Nothing else about the shape of \(H\) matters in the limit.[1]

Worked example

The Petersen graph has 10 vertices, 15 edges, girth 5, and chromatic number 3. The triangle has 3 vertices, 3 edges, and chromatic number 3. The formula gives the same limit \(1/2\) for both. So a large graph with, say, 60% of all possible edges must contain a Petersen subgraph, for the same reason and at the same threshold as it must contain a triangle. Two patterns of wildly different sizes, one threshold, because they need the same number of colours.

The formula has a blind spot, and it is honest about it. If \(H\) is bipartite then \(\chi(H) = 2\) and the limit is 0. That says only that \(\mathrm{ex}(n, H)\) grows more slowly than \(n^2\); it does not say how fast. For \(H = K_{r,r}\) the truth is pinned only between \(c_1 n^{2 - 2/(r+1)}\) and \(c_2 n^{2 - 1/r}\), and even the exponent is open in general.[1] If \(H\) is a forest, \(\mathrm{ex}(n, H)\) is at most linear in \(n\). The Erdős–Sós conjecture from 1963 guesses the exact shape there: \(\mathrm{ex}(n, T) \leq \frac{1}{2}(k-1)n\) for every tree \(T\) with \(k\) edges, which would say average degree above \(k-1\) forces every \(k\)-edge tree. It is known for stars and paths, open in general.

Common mistake

"Erdős–Stone solves the extremal problem." It solves the dense extremal problem, the one where the answer is a positive share of \(\binom{n}{2}\). For bipartite forbidden patterns the theorem reports a limit of zero and stops, which is exactly where the hardest questions in the subject begin. A limit of zero is not an answer, it is a change of scale.

What does the asymptotic formula tell you about \(\mathrm{ex}(n, K_{3,3})\)?

  1. It grows more slowly than \(n^2\), and the formula says nothing more precise
  2. It is 0 once \(n\) is large, so every large graph contains \(K_{3,3}\)
  3. It is about half of \(\binom{n}{2}\)
  4. It equals \(t_2(n)\) exactly
Answer: A. \(K_{3,3}\) is bipartite, so \(\chi(H) = 2\) and the limit \(\frac{\chi-2}{\chi-1}\) is 0. That fixes only the scale, leaving the exponent open. Option B confuses a ratio tending to 0 with the edge count itself being 0.

Minors: a bounded average degree is enough

Everything so far needed a quadratic number of edges. Now relax the pattern from subgraph to minor, and the price collapses. The reason is that a minor may use long detours: a branch set of a hundred vertices, contracted, counts as one vertex of the pattern. Once detours are legal, a graph does not need to be dense, it only needs to be dense enough somewhere to keep branch sets connected.

Proposition — average degree forces a complete minor

If \(d(G) \geq 2^{r-2}\), then \(K^r \preccurlyeq G\). In plain words: an average degree depending only on \(r\), and not at all on how big the graph is, already guarantees a \(K^r\) minor.[2]

The proof idea is a neat induction.[2] Among all minors of \(G\) whose edge-to-vertex ratio is still high, take one, call it \(H\), that is minimal: contracting any further edge would spoil the ratio. Minimality means every edge of \(H\) is "expensive" to contract, which forces any two adjacent vertices to share many neighbours. Fix a vertex \(x\); its neighbourhood then induces a graph in which every vertex has high degree, so induction supplies a \(K^{r-1}\) minor inside the neighbourhood. Add \(x\) itself, joined to all of it, and you have \(K^r\).

Three sharper results follow, and the numbers are worth a table because the comparison is the actual content of the section.

Pattern wantedWhat forces itSharp?
\(K^r\) as a subgraphMore than \(t_{r-1}(n)\) edges, that is, a positive share of all \(\binom{n}{2}\) pairsExact (Turán)
\(TK^r\), a subdivided \(K^r\)Average degree \(2^{\binom{r}{2}}\) in the easy proof; average degree \(c r^2\) in the sharp one (Diestel proves \(c = 10\))Quadratic in \(r\) is best possible
\(K^r\) as a minorAverage degree \(c\, r \sqrt{\log r}\) (Kostochka, 1982)Best possible order of growth

Read the table as a price list. Subgraph containment costs a quadratic number of edges, which no bounded average degree can ever pay. Subdivisions cost about \(r^2\) average degree, minors only about \(r\sqrt{\log r}\). The sharp bound for subdivisions reuses earlier machinery: pull out a highly connected subgraph using the result from Chapter 1 that large average degree yields a highly connected piece, then use the linkage theorem from Chapter 3 to join designated pairs of vertices by disjoint paths, one path per edge of \(K^r\).[2] Kostochka's theorem is stated without proof in Diestel and here; random graphs supply the matching lower bound, so its growth rate cannot be improved.[2]

Now the strangest result of the chapter. Girth is the length of the shortest cycle, so large girth means the graph looks locally like a tree, which feels like the opposite of structure. It forces structure anyway.

Lemma — large girth forces a dense minor

If \(\delta(G) \geq d \geq 3\) and \(g(G) \geq 8k + 3\), then \(G\) has a minor \(H\) with \(\delta(H) \geq d(d-1)^k\). In plain words: minimum degree at least 3 plus no short cycles lets you contract the graph into one whose minimum degree is exponentially larger.[2]

Intuition

Around any vertex, a graph of large girth and minimum degree 3 looks like a tree that keeps branching: one vertex, then 3 neighbours, then about \(2 \times 3\) at the next level, and so on, with no short cycles to fold the branches back together. Grow such a tree around each of many well-separated centres until the trees fill the graph. Each tree has an enormous number of leaves, each leaf sends edges out to other trees, and large girth guarantees the trees do not double up on each other. Contract every tree to a point and all those outgoing edges survive as distinct edges at a single vertex. Local tree-likeness is exactly what makes the contraction so profitable.

Two theorems follow. Thomassen's theorem: minimum degree 3 plus girth at least \(f(r)\), with \(f(r)\) growing like \(8\log r\), forces a \(K^r\) minor. The proof pumps the minimum degree up with the lemma above, then calls Kostochka's theorem.[2] The Kühn–Osthus theorem is stronger for subdivisions: one universal girth bound, the same for every \(r\), together with minimum degree at least \(r-1\), forces a subdivided \(K^r\). That degree condition is needed anyway, just to give the branch vertices somewhere to send their paths.[2]

Figure 7.6 shows the phenomenon at the smallest scale on a graph you have already met.

Petersen graph: girth 5, every degree 3 after contracting the 5 spokes 1 2 3 4 5 contract 1 2 3 4 5
Figure 7.6. The Petersen graph has no cycle shorter than 5 and only 15 edges on 10 vertices, so it is sparse and locally tree-like. Contract the five violet spokes, each a two-vertex branch set, and the outer pentagon supplies the edges between neighbouring branch sets while the inner pentagram supplies the rest: the result is \(K^5\), a complete graph on five vertices. Sparse and cycle-poor, yet a complete minor is hiding inside.

Which containment can be forced by a bound on average degree that does not grow with the number of vertices?

  1. \(K^r\) as a subgraph
  2. \(K^r\) as a minor
  3. Neither: both need a positive share of all \(\binom{n}{2}\) pairs
  4. Both, and at the same price
Answer: B. Average degree \(2^{r-2}\), a number depending on \(r\) alone, already forces a \(K^r\) minor, because a minor may run through long detours and contracted branch sets. A \(K^r\) subgraph needs more than \(t_{r-1}(n)\) edges, a bill no bounded average degree can pay.

A graph has minimum degree at least 3 and girth at least \(8k+3\). What does the large girth buy?

  1. Minimum degree inside \(G\) itself that is exponentially larger
  2. A subgraph of \(G\) whose minimum degree is exponentially larger
  3. A minor of \(G\) whose minimum degree is exponentially larger
  4. Nothing: locally tree-like graphs have no dense minors
Answer: C. Grow branching trees around well-separated centres and contract each one to a point; every leaf's outgoing edges survive at that single vertex. The large degrees exist only after contracting, which is why option B fails: no piece sitting inside \(G\) gained any degree.

Hadwiger's conjecture: colours and minors

Chapter 5 left a question hanging. A graph that needs many colours must be complicated somehow, but how? The naive guess, that a graph needing \(r\) colours contains \(r\) mutually adjacent vertices, is false and spectacularly so: there are triangle-free graphs needing as many colours as you like. Hadwiger's guess from 1943 replaces "contains" by "contains as a minor", and it has resisted everything since.

Conjecture — Hadwiger (Hadwiger, 1943)

For every integer \(r > 0\) and every graph \(G\): if \(\chi(G) \geq r\), then \(K^r \preccurlyeq G\). Equivalently, in contrapositive form: every graph with no \(K^r\) minor can be coloured with \(r - 1\) colours. In plain words: if a graph stubbornly needs \(r\) colours, the reason should be a \(K^r\) squeezed inside it in the loose, contractible sense.[3]

Intuition

Why is this hard, when the previous section forced complete minors so cheaply? Because chromatic number is a weak source of edges. A graph needing \(r\) colours contains a subgraph in which every vertex has degree at least \(r - 1\) (that is the one bridge from colouring to degrees, from Chapter 5), so it has average degree roughly \(r\). But average degree roughly \(r\) only buys a complete minor of order about \(r/\sqrt{\log r}\), by the sharpness of Kostochka's theorem. That is smaller than \(r\). So no proof of Hadwiger's conjecture can work by counting edges alone: the chromatic number must carry structural power beyond the edges it implies, and nobody knows how to extract it.

The small cases are proved through structure theorems, and they follow one template: describe exactly how the graphs with no \(K^r\) minor are built, then colour the building blocks. Start with \(r = 4\).

Proposition — the shape of \(K^4\)-minor-free graphs

For \(|G| \geq 3\): \(G\) is edge-maximal with no \(K^4\) minor exactly when \(G\) can be built from triangles by repeatedly pasting along a shared edge. Every such graph has exactly \(2|G| - 3\) edges, and every such graph is 3-colourable, which proves Hadwiger's conjecture for \(r = 4\).[3]

a b c d e 1 2 3 1 2 5 vertices, 7 edges, and 7 = 2 times 5 minus 3
Figure 7.7. Start with the triangle \(abc\). Paste a second triangle along the violet edge \(bc\), adding \(d\). Paste a third along the gold edge \(cd\), adding \(e\). Each pasting adds one vertex and two edges, so the count stays at \(2n - 3\). Colouring is automatic: each new vertex sees only the two colours on the shared edge, so a third colour is always free. No \(K^4\) minor ever appears.

The case \(r = 5\) is where the four colour theorem enters. Wagner proved in 1937 that every edge-maximal graph with no \(K^5\) minor is built, by pasting along triangles and along single edges, from two kinds of blocks: plane triangulations, and copies of one specific eight-vertex graph.[3]

v1 v2 v3 v4 v5 v6 v7 v8 1 2 1 2 3 1 2 3
Figure 7.8. The Wagner graph \(W\): the ring \(v_1 v_2 \dots v_8 v_1\) plus the four violet diagonals joining opposite vertices. Twelve edges, every degree 3. The numbers give a proper 3-colouring; check any edge and its ends differ. Three colours are also necessary, since \(v_1 v_2 v_3 v_4 v_5\) closed by the diagonal \(v_5 v_1\) is a cycle of odd length. \(W\) is not planar, yet it has no \(K^5\) minor, which is why Wagner's classification needs it as a second building block.

Two consequences follow. First, a graph with no \(K^5\) minor has at most \(3n - 6\) edges, the same bound planar graphs obey (from Chapter 4). Second, Hadwiger's conjecture holds for \(r = 5\): plane triangulations need at most four colours by the four colour theorem, the Wagner graph needs three, and pasting along complete subgraphs never raises the number of colours above the worst block. Run the argument backwards and you see the equivalence: since planar graphs have no \(K^5\) minor, Hadwiger for \(r = 5\) would say every planar graph is 4-colourable, which is the four colour theorem itself.[3]

Robertson, Seymour and Thomas proved the case \(r = 6\) in 1993, by showing that a minimal counterexample would have to be a planar graph plus one extra vertex, which the four colour theorem then colours with five colours.[3] The case \(r = 7\) is open, and so is everything beyond. Kühn and Osthus proved the conjecture for all large \(r\) among graphs with no \(K_{s,s}\) subgraph, and it is also known for graphs of large girth, for line graphs, and for almost all graphs in the random sense of Chapter 11.[3]

One tempting strengthening is dead. Hajós conjectured the same statement with subdivisions in place of minors, and Catlin disproved it in 1979. It survives only with an extra assumption: above one universal girth bound the subdivision version does hold, for every \(r\). That proof is a two-step chain, from chromatic number to minimum degree by the colouring lemma of Chapter 5[8], then from minimum degree plus girth to a subdivided clique by the Kühn–Osthus theorem above.[3]

Common mistake

Average degree, minimum degree and chromatic number are not interchangeable. Large chromatic number yields a subgraph of large minimum degree, hence large average degree, but neither reverse implication holds: a graph can have huge average degree with an isolated vertex, and huge average degree says nothing about needing many colours (a complete bipartite graph is dense and 2-colourable). The whole difficulty of Hadwiger's conjecture lives in that gap.

In the real world

Structure theorems for minor-free graphs are the reason certain hard computations are feasible on certain networks. A road map is planar, hence has no \(K^5\) minor, hence is 4-colourable by the results above. Graphs that exclude a minor also tend to admit tree-like decompositions, and the width of such a decomposition is the exponent in the running time of dynamic programming over it. That parameter is not merely one route to efficiency but the only one for a central task: for exact inference in Bayesian networks, no algorithm is efficient on networks of unbounded width, assuming the standard conjecture that satisfiability has no subexponential algorithm.[11] One experimental study measured width-related bounds across 25 real datasets from 8 domains and found social networks stubbornly wide, road networks far more tractable.[12] Chapter 12 develops the decompositions themselves.

Why can no proof of Hadwiger's conjecture work by counting edges alone?

  1. Because there are triangle-free graphs that need arbitrarily many colours
  2. Because \(\chi(G) \geq r\) only yields average degree about \(r\), which forces a complete minor of order roughly \(r/\sqrt{\log r}\), short of \(r\)
  3. Because Kostochka's theorem is still only a conjecture
  4. Because a graph needing \(r\) colours always has fewer than \(rn\) edges
Answer: B. The edges that \(r\) colours guarantee fall short by a \(\sqrt{\log r}\) factor, so the chromatic number must carry structural power beyond the edges it implies. Option A is true, but it explains why the subgraph version of the guess is false, not why edge counting cannot settle the minor version.

The regularity lemma, before any epsilon

The rest of the chapter is one idea and its consequences. Read this section slowly; the symbols come later, on purpose.

Suppose someone hands you a graph with a million vertices and asks what it looks like. You cannot draw it. What you can do is summarise it: split the million vertices into, say, forty groups of twenty-five thousand, and report one number for each pair of groups, namely the share of possible edges between them that are actually present. That is a summary of forty numbers per row, a small weighted graph, a table you can print on one page.

Every summary loses information. The question is whether it must lose the information you care about. A line saying "groups 3 and 7 are joined at density one half" is compatible with two very different realities. In the first, the edges between the two groups are sprinkled evenly, so any large sample from group 3 sees about half of any large sample from group 7. In the second, half of group 3 is joined completely to half of group 7 and the other halves are joined to nothing. Both report one half. Only the first lets you predict anything about pieces you did not sample.

Szemerédi's regularity lemma says that a summary of the good kind always exists. For any graph at all, with no assumptions whatsoever, you can split the vertices into equal groups so that nearly every pair of groups behaves like reality A: the edges between them are spread so evenly that any large window on one side sees about the same density towards any large window on the other. The number of groups needed is bounded by a number that depends only on how strict "about the same" is, and not on the graph. A million vertices or a trillion: the same bounded summary size.

Intuition

The one-line version: every large graph looks, at coarse resolution, like a small weighted graph plus noise. The small weighted graph is the group-by-group density table. The noise is genuine randomness between groups, which is harmless because random-like structure is predictable. What the lemma rules out is a third possibility, hidden conspiracy inside a pair of groups that a density number would hide. It says conspiracies can always be broken up by choosing the groups well.

Now the symbols. Two definitions carry the weight.

Definition — density of a pair

For disjoint vertex sets \(X\) and \(Y\), write \(\lVert X, Y\rVert\) for the number of edges with one end in \(X\) and one end in \(Y\). The density of the pair is \[ d(X, Y) := \frac{\lVert X, Y\rVert}{|X|\,|Y|}, \] read as "the number of edges between them, divided by the number of pairs that could have been edges". It is always between 0 and 1. If \(|X| = 20\), \(|Y| = 30\) and 180 edges run between them, then \(d(X,Y) = 180/600 = 0.3\).[4]

Definition — \(\epsilon\)-regular pair

Fix a number \(\epsilon > 0\). A pair \((A, B)\) of disjoint vertex sets is \(\epsilon\)-regular if for every \(X \subseteq A\) with \(|X| \geq \epsilon|A|\) and every \(Y \subseteq B\) with \(|Y| \geq \epsilon|B|\), we have \[ |d(X, Y) - d(A, B)| \leq \epsilon. \] Read it aloud: zoom into any window that takes at least an \(\epsilon\) share of each side, and the density you see there differs from the overall density by at most \(\epsilon\). Plainly: no large window is a liar.[4]

Two design choices in that definition deserve a sentence each. The size thresholds \(\epsilon|A|\) and \(\epsilon|B|\) are unavoidable. Without them you could take \(X\) and \(Y\) to be single vertices, whose density is 0 or 1 by definition, and no pair on earth would qualify. And smaller \(\epsilon\) makes the condition harder in two ways at once: smaller windows come under scrutiny, and less deviation is tolerated inside them. Figure 7.9 contrasts an evenly spread pair with a conspiratorial one.

spread out: 8 of 16 edges rigged: also 8 of 16 edges a1 a2 a3 a4 b1 b2 b3 b4 every 2-by-2 window holds 1, 2 or 3 edges a1 a2 a3 a4 b1 b2 b3 b4 X Y the window X by Y holds no edges at all
Figure 7.9. Both pairs have four vertices per side and eight of the sixteen possible edges, so both report density \(1/2\). On the left the edges are spread out and no window is far off. On the right the pair is two complete blocks: the gold window \(X = \{a_1, a_2\}\), \(Y = \{b_3, b_4\}\) has density 0, a deviation of \(1/2\), while \(\{a_1,a_2\}\) against \(\{b_1,b_2\}\) has density 1. Since \(X\) and \(Y\) are half of their sides, that window counts for every \(\epsilon \leq 1/2\), so the right-hand pair fails \(\epsilon\)-regularity for every \(\epsilon < 1/2\). Regularity is asymptotic, so at this size neither pair is literally regular for small \(\epsilon\); the contrast is the point.
Definition — \(\epsilon\)-regular partition

A partition \(\{V_0, V_1, \dots, V_k\}\) of the vertex set of \(G\) is \(\epsilon\)-regular if three things hold: (i) the leftover bin is small, \(|V_0| \leq \epsilon|V|\); (ii) the other parts have exactly equal size, \(|V_1| = \dots = |V_k|\); (iii) all but at most \(\epsilon k^2\) of the pairs \((V_i, V_j)\) with \(1 \leq i < j \leq k\) are \(\epsilon\)-regular. Plainly: equal chunks, a small waste bin, and almost every chunk pair is honest.[4]

The bin \(V_0\) is bookkeeping, not pathology. It exists because \(n\) need not divide evenly into \(k\) parts, and the proof wants the parts exactly equal. Its vertices are not bad, just unassigned, and there are few of them. Allowing a few irregular pairs is also necessary: some graphs cannot avoid them.

Theorem — Szemerédi's regularity lemma (Szemerédi, 1978)

For every \(\epsilon > 0\) and every integer \(m \geq 1\) there is an integer \(M\) such that every graph with at least \(m\) vertices has an \(\epsilon\)-regular partition \(\{V_0, V_1, \dots, V_k\}\) with \(m \leq k \leq M\). In plain words: every graph can be cut into between \(m\) and \(M\) equal chunks, plus a small bin, so that nearly all chunk pairs look random. The bound \(M\) depends only on \(\epsilon\) and \(m\), never on the graph.[4]

A black and white photograph of an elderly man with white hair and a white beard, in a suit and striped tie with a clip-on microphone, speaking against a dark background.
Plate 7.C. Szemerédi in Oslo in 2012, the year he received the Abel Prize, thirty-four years after the lemma above. The rest of the chapter runs on that lemma. It is recent mathematics, proved and rewarded inside one working career, not inherited from the nineteenth century. Gert-Martin Greuel, 2012. Wikimedia Commons, CC BY-SA 2.0 DE.
Intuition

The proof is a scoring argument. Give each partition a score: for every pair of parts, square the density between them, weight that by how large the two parts are, and add up. The score always lies between 0 and 1. Two facts drive the rest. Splitting parts into smaller parts never lowers the score (that is the Cauchy–Schwarz inequality doing its usual work). And whenever a pair is irregular, the very sets that witness the failure show how to split it so the score strictly rises, by an amount depending only on \(\epsilon\). So if the partition is not yet \(\epsilon\)-regular, split every offending pair at once and the score rises by at least \(\epsilon^5/2\). A quantity trapped in \([0,1]\) that rises by a fixed amount each round can do so at most \(2/\epsilon^5\) times, so the process stops, and where it stops the partition is regular.[4]

That argument also explains the lemma's price. Each round can multiply the number of parts by a factor like \(4^{k+1}\), and there can be \(2/\epsilon^5\) rounds, so the bound \(M\) is a tower of exponentials in \(1/\epsilon\). Nobody applies the lemma numerically. It is an existence statement used inside proofs, and the constants it produces are astronomically large.

Common mistake

Three traps, all common. First, "regular" does not mean "dense": a pair with no edges at all is perfectly \(\epsilon\)-regular, since every window has density 0 and so does the whole pair. That is why the machinery below adds a separate density threshold. Second, smaller \(\epsilon\) is a stronger requirement, not a weaker one, even though the number is smaller. Third, the lemma is only useful for dense graphs. If a graph has \(o(n^2)\) edges, every pair density tends to 0, every pair is regular for a silly reason, and the summary says nothing.[4]

In the real world

Much of network analysis assumes that a huge network can be summarised by a handful of communities plus a table of densities between them. The regularity lemma is the worst-case guarantee that such a summary exists for every dense network, with a bounded number of communities, whatever the network looks like. Two caveats travel with it: the bound on the number of parts is a tower of exponentials, so the lemma justifies the modelling assumption without providing a usable algorithm, and it says nothing about sparse networks, which is most real ones. Empirical work leans on measured coarse statistics instead. The study that introduced small-world networks compared clustering and path lengths in a worm's neural wiring, the western United States power grid, and a film-actor collaboration graph, and found the same signature in all three.[13]

A pair \((A,B)\) has no edges at all between the two sets. Is it \(\epsilon\)-regular?

  1. No: an \(\epsilon\)-regular pair must have density at least \(\epsilon\)
  2. Yes: every large window has density 0, exactly matching the pair's own density
  3. No: the density of an empty pair is undefined
  4. Only if \(|A| = |B|\)
Answer: B. Regularity constrains how evenly the edges are spread, not how many there are, and with no edges anywhere the deviation is 0 in every window. That is exactly why the machinery later adds a separate density threshold.

Which of these does the regularity lemma not give you?

  1. Nearly all chunk pairs \(\epsilon\)-regular
  2. Chunks \(V_1, \dots, V_k\) of exactly equal size
  3. A part count bounded by an \(M\) depending only on \(\epsilon\) and \(m\)
  4. An informative summary of a graph with \(o(n^2)\) edges
Answer: D. In a graph that sparse every pair density tends to 0, so every pair is regular for a trivial reason and the density table reports nothing. The other three are what the lemma delivers, for any graph whatsoever.

Using the lemma: the summary graph and the way back down

A summary is only useful if you can argue in it and then return. Two constructions do the returning.

Definition — regularity graph \(R\) and its blow-up \(R_s\)

Take an \(\epsilon\)-regular partition with parts \(V_1, \dots, V_k\) of size \(\ell\), and fix a density threshold \(d\) between 0 and 1. The regularity graph \(R\) has vertices \(1, \dots, k\), one per chunk, with \(i\) joined to \(j\) exactly when the pair \((V_i, V_j)\) is \(\epsilon\)-regular and has density at least \(d\). The blow-up \(R_s\) replaces each vertex of \(R\) by \(s\) copies and each edge by all \(s^2\) edges between the corresponding groups. Plainly: \(R\) is the map of the graph at chunk resolution, keeping only connections that are both honest and thick; \(R_s\) is that map redrawn with each place widened into a cluster of \(s\).[5]

The technical fact that makes the return trip work is this. Inside a regular pair, almost every vertex on one side has roughly its fair share of neighbours in any large target set on the other side. Precisely: if \((A,B)\) is \(\epsilon\)-regular with density \(d\), and \(Y \subseteq B\) has \(|Y| \geq \epsilon|B|\), then fewer than \(\epsilon|A|\) vertices of \(A\) have fewer than \((d - \epsilon)|Y|\) neighbours inside \(Y\).[5] Almost nobody is starved of the target set. That is what lets you build a copy of a pattern one vertex at a time without painting yourself into a corner.

Lemma — the blow-up lemma, simple version

For every density \(d\) and every degree bound \(\Delta\) there is an \(\epsilon_0 > 0\) such that the following holds. If every vertex of \(H\) has degree at most \(\Delta\), and \(R\) is a regularity graph of \(G\) with parameters \(\epsilon \leq \epsilon_0\), chunk size \(\ell\) large enough, and threshold \(d\), then \(H \subseteq R_s\) implies \(H \subseteq G\). In plain words: any bounded-degree pattern you can see in the blown-up map really exists down in the original graph.[5]

The proof embeds the vertices of \(H\) one at a time.[5] Each vertex of \(H\) not yet placed carries a shrinking "still allowed" set inside the chunk it is assigned to. Every time one of its neighbours gets placed, the allowed set shrinks to the neighbourhood of the chosen image, and the fact above says it shrinks only by a factor of about \(d\). A vertex of degree at most \(\Delta\) suffers at most \(\Delta\) such shrinkings, so its allowed set never drops below about \(d^{\Delta}\ell\), which stays large enough to keep choosing fresh vertices. Bounded degree is what bounds the damage.

1. cut G into equal chunks 2. summary graph R 3. blow-up R with s = 2 V1 V2 V3 V4 V5 V0 G, n vertices 1 2 3 4 5 .6 .7 .5 .4 edges only for honest, thick pairs each vertex becomes a cluster of 2 blow-up lemma: a bounded-degree pattern seen in the blow-up exists in G
Figure 7.10. The method in three moves, with \(k = 5\) chunks. Step 1 cuts \(G\) into equal chunks \(V_1, \dots, V_5\) plus the small bin \(V_0\). Step 2 keeps only the pairs that are regular and have density at least the chosen threshold \(d\), here the violet triangle on chunks 1, 2, 3 (densities .6, .7, .5) and the pair 4-5 at density .4. Step 3 blows the triangle up with \(s = 2\), producing \(K^3_2\). The arrow back says the blown-up pattern is not a fantasy: it exists inside \(G\).

Now the Erdős–Stone theorem can be proved, and its proof is the template for the whole method.[5] Start with a graph having \(t_{r-1}(n) + \epsilon n^2\) edges and apply the regularity lemma. Then ask where the surplus edges could hide. Edges touching the bin are few, because the bin is small. Edges inside a single chunk are few, because chunks are small. Edges in irregular pairs are few, because at most \(\epsilon k^2\) pairs are irregular. Edges in pairs of density below the threshold \(d\) are few, because the threshold is low. Everything else lies in regular pairs of decent density, and so appears as an edge of the summary graph \(R\). The four "few" terms cannot absorb the surplus, so \(R\) itself carries more than \(t_{r-1}(k)\) edges. Turán's theorem, applied to the tiny graph \(R\), hands you a \(K^r\) inside it; blow it up to \(K^r_s\) inside \(R_s\), and the blow-up lemma drops it back into \(G\).

Intuition

Every regularity proof has this shape: a statement about a huge graph is reduced to the same statement about a bounded-size graph, a classical theorem (here Turán's) settles it there, and the answer is carried back down. The order of the constants matters and trips people up. First the pattern and the density threshold \(d\), then a tolerance \(\epsilon\) small enough for the blow-up lemma, then the minimum number of chunks \(m\), then the lemma hands back \(M\), and only then must \(n\) be large enough for chunks of size \(n/M\) to be big. Never let \(\epsilon\) depend on \(n\).

The blow-up lemma insists that every vertex of \(H\) have degree at most \(\Delta\). Where does that hypothesis do its work?

  1. It keeps the number of chunks bounded
  2. It forces \(H\) to be bipartite
  3. It makes the density threshold unnecessary
  4. It caps how many times an unplaced vertex's set of allowed images can shrink
Answer: D. The vertices of \(H\) are placed one at a time, and each placed neighbour shrinks the allowed set by a factor of about the density, so at most \(\Delta\) shrinkings leave roughly \(d^{\Delta}\ell\) choices. A vertex of unbounded degree could be squeezed down to nothing.

Two off-the-shelf tools: counting and removal

The blow-up lemma answers "does a copy exist?". The next tool answers "how many copies are there?", and the answer is the one a coin-flipping random graph would give.

Counting is easier if you count maps rather than copies. A homomorphism from \(H\) to \(G\) is a map sending each vertex of \(H\) to a vertex of \(G\) such that every edge of \(H\) lands on an edge of \(G\). Non-adjacent vertices of \(H\) may collapse to the same vertex of \(G\); the injective homomorphisms, the ones that never collapse, are exactly the labelled copies of \(H\) inside \(G\). The count is written \(\hom(H, G)\). Counting maps keeps the algebra clean, and when \(G\) is large the collapsing maps are too few to matter.

Lemma — the counting lemma

Seat each vertex of \(H\) in an assigned chunk of \(G\), respecting adjacency at the chunk level. If the relevant chunk pairs are uniform with densities \(d_{ij}\), then the number of seat-respecting homomorphisms of \(H\) into \(G\) differs from \[ \prod_{e \in E(H)} d_e \cdot \prod_{u \in V(H)} |V_u| \] by at most \(\epsilon \lVert H\rVert\) times that second product. Here \(V_u\) is the chunk assigned to \(u\), and \(d_e\) is the density of the chunk pair assigned to the ends of \(e\). In plain words: multiply the sizes of the assigned chunks, then multiply by one density factor per edge of \(H\), with an error of about \(\epsilon\) per edge. That is exactly the estimate you would write for a random graph of the same densities.[6]

Worked example

Take \(H\) a triangle and three chunks of 1,000 vertices each, pairwise of density 0.5. The formula predicts \(0.5 \times 0.5 \times 0.5 \times 1000^3 = 1.25 \times 10^{8}\) triangles with one vertex in each chunk. The error term is proportional to \(\epsilon\), so for \(\epsilon\) small the prediction is not merely positive, it is accurate to a few percent. Compare this with the blow-up lemma, which would only have told you that at least one triangle exists. Knowing the count is what makes the next lemma possible.

One caveat: the counting lemma is stated for a variant of regularity called uniformity, which compares every non-empty window against a chosen target density with an allowance that grows as the window shrinks.[6] Nothing is lost. Regular pairs are uniform, and uniform pairs are regular after replacing \(\epsilon\) by its cube root, so the two notions are interchangeable up to renaming the parameter.

Lemma — the removal lemma

Fix a pattern \(H\) and a small number \(\varrho > 0\). There are \(\eta > 0\) and \(n_0\) such that: if \(G\) has \(n \geq n_0\) vertices and contains at most \(\eta n^{|H|}\) copies of \(H\), then you can delete at most \(\varrho n^2\) edges from \(G\) and destroy every copy. In plain words: if a large graph has only a few copies of \(H\), then all of those copies can be wiped out by deleting a tiny fraction of the edges. Copies cannot be both rare and spread evenly across the graph.[6]

The proof is one paragraph once the tools are in place.[6] Take a regular partition and delete every edge that touches the bin, lies inside a chunk, lies in an irregular pair, or lies in a pair of density below \(\varrho\). The same four-term count as before shows this is at most \(\varrho n^2\) edges. Now suppose a copy of \(H\) survived. All of its edges then live in regular pairs of decent density, so the chunks it occupies form a seating plan of exactly the kind the counting lemma handles, and the counting lemma manufactures far more copies of \(H\) than the hypothesis allowed. Contradiction, so no copy survived.

Common mistake

The removal lemma is often quoted backwards. It says: few copies implies few edges suffice to kill all copies. It does not say the graph has few edges overall, and it says nothing about graphs with many copies. The stronger conclusion, that the graph itself must be sparse, needs an extra hypothesis, which is the next definition.

Definition — copies spread thinly

Copies of \(H\) are spread thinly over a class of graphs if there is one number \(d\) such that, in every graph of the class, each edge lies in at least one copy of \(H\) and in at most \(d\) copies. Plainly: every edge takes part in the pattern, but no edge is a hotspot.[6]

Thin spreading squeezes from both sides. Because no edge is in many copies, copies are rare enough for the removal lemma to apply, and it returns a small set of edges meeting every copy. Because every edge is in some copy, and each deleted edge destroys only a bounded number of copies, the whole edge set can be only a bounded multiple of that small set. So the graph is sparse.[6]

Corollary — every edge in exactly one triangle forces sparsity

For every \(\gamma > 0\) there is an \(n_0\) such that every graph on \(n \geq n_0\) vertices in which every edge lies in exactly one triangle has at most \(\gamma n^2\) edges. In plain words: the innocent-sounding condition "each edge belongs to precisely one triangle" forbids density; such graphs have a vanishing share of all possible edges.[6]

In the real world

The removal lemma is why a computer can answer a question about a gigantic graph after looking at only a bounded number of random samples. Suppose you want to separate graphs with no triangle from graphs that are far from triangle-free, meaning no small set of edge deletions makes them triangle-free. The lemma says the two cases differ in the density of triangles, not merely in their existence: a graph far from triangle-free must contain a constant share of all possible triangles. So sampling a bounded number of vertex triples settles the question with high confidence, at a cost that does not grow with the graph.[6] That argument is the foundation of property testing, where an algorithm may read only a tiny sample of its input.

Three chunks of 1,000 vertices are pairwise uniform with density 0.2. About how many triangles with one vertex in each chunk does the counting lemma predict?

  1. About \(8 \times 10^{6}\)
  2. About \(2 \times 10^{8}\)
  3. About \(6 \times 10^{8}\)
  4. At least one; the lemma gives no count
Answer: A. One density factor per edge of \(H\), times the three chunk sizes: \(0.2^3 \times 1000^3 = 8 \times 10^{6}\). Option B applies a single density factor instead of one per edge, and option D describes the blow-up lemma, which reports existence only.

The payoff: a theorem about numbers, proved with a graph

Leave graphs for a moment. An arithmetic progression is a run of numbers with a constant gap: 3, 7, 11 is one of length 3 with gap 4. A set of whole numbers has positive upper density if there is a fixed share \(\delta > 0\) such that the set claims at least \(\delta n\) of the first \(n\) whole numbers, for infinitely many \(n\). The even numbers have upper density \(1/2\). The powers of 2 have upper density 0.

Write \(r_k(n)\) for the largest size of a subset of \(\{0, 1, \dots, n-1\}\) that contains no arithmetic progression of length \(k\). For example \(r_3(5) = 4\): the set \(\{0, 1, 3, 4\}\) has no three evenly spaced members, while any five-element subset of \(\{0,\dots,4\}\) is everything and contains 0, 1, 2.

Theorem — Szemerédi's theorem (Szemerédi, 1975)

Every set of whole numbers with positive upper density contains arithmetic progressions of every finite length. Equivalently, \(r_k(n)/n \to 0\) as \(n\) grows, for every \(k \geq 3\). In plain words: you cannot keep a fixed percentage of the whole numbers and dodge evenly spaced runs forever; sets that dodge runs of length \(k\) occupy a vanishing share of \(\{0, \dots, n-1\}\).[7]

The proof of the general case is far beyond this course, and beyond Diestel's book, which states it and moves on.[7] The historical point is worth knowing: the regularity lemma was invented as a step inside that proof. What Diestel does prove, in a single page, is the first non-trivial case, \(k = 3\), which is Roth's theorem from 1953. The proof is a graph argument, and it is the cleanest demonstration in the book that the regularity method reaches outside graph theory.

Theorem — Roth's theorem (Roth, 1953)

\(r_3(n)/n \to 0\). In plain words: any subset of \(\{0, \dots, n-1\}\) that avoids all three-term arithmetic progressions has size vanishingly small compared with \(n\).[7]

Here is the construction, and it is worth following move by move. Let \(D\) be a set of numbers below \(n\) with no three-term progression. Build a graph on three rows of vertices: a row \(X\) holding \(1, \dots, n\), a row \(Y\) holding \(1, \dots, 2n\), and a row \(Z\) holding \(1, \dots, 3n\). For every \(x\) in \(X\) and every \(d\) in \(D\), draw a triangle on the three vertices \(x\) in \(X\), \(x + d\) in \(Y\), and \(2x + d\) in \(Z\). Call it the defining triangle \(K(x, d)\). The graph consists of exactly the edges of these triangles, and nothing else.

1 2 2 3 3 4 5 X Y Z K(1,1) K(1,2) K(2,1)
Figure 7.11. Roth's construction with \(D = \{1, 2\}\), which has no three-term progression. Three defining triangles are shown. Violet: \(K(1,1)\) on \(1 \in X\), \(1+1 = 2 \in Y\), \(2{\cdot}1+1 = 3 \in Z\). Gold: \(K(1,2)\) on \(1, 3, 4\). Green: \(K(2,1)\) on \(2, 3, 5\). Triangles may share a vertex, never an edge, because any two of the three numbers determine the third.

Two observations finish the proof. First, the defining triangles are edge-disjoint. Given two of the three vertices, the third is forced: from \(x\) and \(x+d\) you recover \(d\); from \(x\) and \(2x+d\) you recover \(d\) again; from \(x+d\) and \(2x+d\) you recover \(x\) by subtracting. So no edge lies in two defining triangles, and the edge count is exactly \(3n|D|\), three edges for each of the \(n|D|\) triangles.

Second, there are no other triangles. Suppose some triangle of the graph is not one of the defining ones. Its three edges must then come from three different defining triangles, say \(K(x,a)\), \(K(x,b)\) and \(K(x',c)\), and matching up the shared vertices gives \(x + a = x' + c\) and \(2x + b = 2x' + c\). Subtracting and rearranging turns those two equations into \(a = c + (x' - x)\) and \(b = c + 2(x' - x)\), which says that \(c, a, b\) are three numbers of \(D\) with a constant gap. That is a three-term progression inside \(D\), which we forbade. So no such triangle exists.

Put the two observations together: every edge of this graph lies in exactly one triangle. The corollary of the previous section then applies. The graph has \(6n\) vertices in total, so for any \(\gamma\) chosen in advance and \(n\) large, \[ 3n|D| = \lVert G\rVert \leq \gamma (6n)^2 = 36 \gamma n^2, \] which gives \(|D| \leq 12\gamma n\). Since \(\gamma\) was arbitrary, the share \(|D|/n\) can be forced below any positive number, which is precisely the statement \(r_3(n)/n \to 0\).[7]

Intuition

Look at what carried the argument. A property of numbers, "no three evenly spaced members", was translated into a property of a graph, "no triangle other than the intended ones". The intended triangles were rare, roughly \(n|D|\) of them among \(n^3\) possible triples, and perfectly spread out, one per edge. The removal lemma says rare and spread out cannot coexist in a dense graph. So the graph is sparse, so \(|D|\) is small. Nothing about arithmetic entered after the translation.

In Roth's construction, why do no two defining triangles \(K(x,d)\) share an edge?

  1. Because \(D\) contains no three-term progression
  2. Because the rows \(X\), \(Y\) and \(Z\) have different sizes
  3. Because no two of the triangles share even a vertex
  4. Because any two of \(x\), \(x+d\), \(2x+d\) determine the third, so an edge names its own triangle
Answer: D. From \(x\) and \(x+d\) you recover \(d\); from \(x+d\) and \(2x+d\) you recover \(x\). Option A is the reason there are no extra triangles, which is the proof's other step, and triangles may indeed share a vertex, so option C is false.

What is proved here, and what is not

This chapter has stated more than it has proved. Diestel proves in full, and the sketches here follow him, on: Turán's theorem in two ways, the Turán density limit, the propositions forcing complete minors and subdivisions from average degree, the structure theorems for graphs without a \(K^4\) or \(K^5\) minor, the regularity lemma with its scoring argument, the blow-up lemma, the Erdős–Stone theorem, the counting and removal lemmas, and Roth's theorem.[1][7] Stated without proof, there and here: Kostochka's theorem, the two Kühn–Osthus theorems, Hadwiger's conjecture for \(r = 6\), and Szemerédi's theorem for progressions of length four and beyond. The section numbers are the map for the real thing: §7.2 for the minor bounds, §7.3 for Hadwiger, §7.4 and §7.5 for regularity, §7.6 for the two tools, §7.7 for the arithmetic.[2][3]

The spine, in one paragraph. Bulk forces patterns, and the exchange rate depends on how loosely the pattern may sit inside the host. Subgraphs are expensive, and the price is exactly known: Turán for cliques, Erdős–Stone for everything else, with chromatic number the only feature of the pattern that survives to the limit. Minors are cheap, and the open question there is not the price but whether chromatic number can pay it, which is Hadwiger's conjecture. In between sits a technique that turns any large dense graph into a bounded summary, and it reaches far enough to prove theorems about integers. The subject is not finished: it is where several recent advances in combinatorics have happened, including the first exponential improvement in almost ninety years on the bound for the diagonal Ramsey numbers, a close cousin of the questions asked here.[14]

Which sentence matches the chapter's closing account of the exchange rate between bulk and pattern?

  1. Subgraph thresholds are open, while minor thresholds are known exactly
  2. Subgraphs and minors both need a positive share of all possible edges
  3. Subgraphs are expensive and their price is known; minors are cheap, and the open question is whether chromatic number can pay it
  4. Minors are harder to force than subgraphs, which is why Hadwiger's conjecture is open
Answer: C. Turán and Erdős–Stone settle the subgraph price, with chromatic number the only feature of the pattern that survives to the limit; a bounded average degree already buys a minor, and Hadwiger's conjecture asks whether the chromatic number can buy one too. Option D inverts the direction the whole chapter fixes.

Check your understanding

What does \(\mathrm{ex}(n, H)\) denote?

  1. The smallest number of edges that forces a copy of \(H\) in every \(n\)-vertex graph
  2. The largest number of edges an \(n\)-vertex graph can have without containing \(H\) as a subgraph
  3. The number of copies of \(H\) inside the complete graph \(K^n\)
  4. The chromatic number of \(H\), written as a function of \(n\)
Answer: B. It is the edge count of the record-holding \(H\)-free graphs. Option A describes \(\mathrm{ex}(n,H) + 1\), which is a different number and a different statement.

The Turán graph \(T^{r-1}(n)\) is:

  1. The complete graph on \(r - 1\) vertices
  2. A tree on \(n\) vertices with \(r - 1\) leaves
  3. A randomly chosen graph on \(n\) vertices with \(t_{r-1}(n)\) edges
  4. The complete \((r-1)\)-partite graph on \(n\) vertices whose part sizes differ by at most 1
Answer: D. Balanced parts, every cross-part pair joined, nothing inside a part. Turán's theorem says this is the unique extremal graph for \(K^r\), so nothing random about it.

For disjoint vertex sets \(X\) and \(Y\), the density \(d(X,Y)\) of the pair is defined as:

  1. \(\lVert X, Y\rVert / (|X|\,|Y|)\)
  2. \(\lVert X, Y\rVert / \binom{|X| + |Y|}{2}\)
  3. \((|X| + |Y|) / \lVert X, Y\rVert\)
  4. The average degree of the vertices in \(X \cup Y\)
Answer: A. The denominator counts only cross pairs, since only those could be edges between the two sets, so the ratio lands between 0 and 1. Option B would also count pairs inside \(X\) and inside \(Y\).

What is the largest number of edges a triangle-free graph on 10 vertices can have?

  1. 20
  2. 25
  3. 30
  4. 45
Answer: B. Turán's theorem with \(r = 3\): the extremal graph is \(T^2(10) = K_{5,5}\), with \(5 \times 5 = 25\) edges. Option D is \(\binom{10}{2}\), the complete graph, which is stuffed with triangles.

The star \(K_{1,5}\) contains no path with three edges, and adding any edge to it creates one. Which statement is correct?

  1. It is extremal for six vertices and this forbidden pattern, since no edge can be added
  2. It is neither edge-maximal nor extremal
  3. It is edge-maximal but not extremal, because two disjoint triangles avoid the same pattern on six vertices with six edges
  4. It is extremal because it has the fewest edges among the graphs avoiding the pattern
Answer: C. Edge-maximal means locally stuck; extremal means globally best (Figure 7.1). The star is stuck at five edges while two triangles reach six. Option D inverts the definition: extremal graphs maximise edges, not minimise them.

Let \(H\) be a graph with chromatic number \(\chi(H) = 4\). The ratio \(\mathrm{ex}(n, H) / \binom{n}{2}\) converges to:

  1. \(1/4\)
  2. \(1/2\)
  3. \(2/3\)
  4. \(3/4\)
Answer: C. The limit is \((\chi - 2)/(\chi - 1) = 2/3\). Only the chromatic number of \(H\) enters; its size and shape are irrelevant in the limit. Option B is the answer for \(\chi(H) = 3\).

Which statement about an \(\epsilon\)-regular pair \((A, B)\) is correct?

  1. Its density \(d(A,B)\) must be at least \(\epsilon\)
  2. Every pair of subsets \(X \subseteq A\), \(Y \subseteq B\), of any size at all, has density within \(\epsilon\) of \(d(A,B)\)
  3. A pair with no edges between the two sets can never be \(\epsilon\)-regular
  4. Every pair of subsets with \(|X| \geq \epsilon|A|\) and \(|Y| \geq \epsilon|B|\) has density within \(\epsilon\) of \(d(A,B)\)
Answer: D. The size thresholds are essential, since single vertices always have density 0 or 1, which kills option B. Density plays no part in the definition: an empty pair is perfectly regular, which is why the regularity graph adds a separate density threshold \(d\).

Roughly how large an average degree is known to force a \(K^r\) minor, and how large for a subdivided \(K^r\)? Both answers are best possible up to constants.

  1. About \(r\sqrt{\log r}\) for minors; about \(r^2\) for subdivisions
  2. About \(r^2\) for minors; about \(r\sqrt{\log r}\) for subdivisions
  3. About \(2^r\) for both
  4. About \(r\) for both
Answer: A. Kostochka's theorem gives \(c\,r\sqrt{\log r}\) for minors; the sharp bound for subdivisions is \(c\,r^2\). Minors are the looser containment, so they are the cheaper of the two to force, which rules out option B.

Why would Hadwiger's conjecture for \(r = 5\) imply the four colour theorem?

  1. Because every 4-chromatic graph contains a \(K^5\) subgraph
  2. Because planar graphs have no \(K^5\) minor, so the conjecture read backwards ("no \(K^5\) minor implies 4-colourable") applies to every planar graph
  3. Because the Wagner graph is planar and 4-colourable
  4. Because the Turán graph \(T^4(n)\) is planar for every \(n\)
Answer: B. In contrapositive form the conjecture says that a graph with no \(K^5\) minor needs at most four colours, and planar graphs have no \(K^5\) minor. Option C is doubly wrong: the Wagner graph is not planar, and it needs three colours.

In the proof of Roth's theorem, a progression-free set \(D\) is encoded as a three-row graph whose intended triangles are the defining triangles \(K(x,d)\) on the vertices \(x\), \(x+d\), \(2x+d\). What would a triangle other than a defining one imply?

  1. That \(D\) contains a three-term arithmetic progression, contradicting how \(D\) was chosen
  2. That the graph has more than \(3n|D|\) edges
  3. That two defining triangles share an edge
  4. That \(D\) has positive upper density
Answer: A. Such a triangle borrows one edge from each of three different defining triangles \(K(x,a)\), \(K(x,b)\), \(K(x',c)\), and matching the shared vertices forces \(a = c + (x'-x)\) and \(b = c + 2(x'-x)\), an evenly spaced triple inside \(D\). Ruling it out is what makes every edge lie in exactly one triangle, which is the hypothesis the removal lemma needs.

Sources and further reading

  1. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §7.1 (extremal numbers and extremal graphs; Turán graphs; Turán's theorem 7.1.1 with both proofs; Erdős–Stone theorem 7.1.2; asymptotic extremal formula, Corollary 7.1.3; Turán density limit, Lemma 7.1.4; bipartite bounds and the Erdős–Sós conjecture).
  2. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §7.2 (average degree forces complete minors, Proposition 7.2.1, and subdivisions, Proposition 7.2.2; quadratic bound, Theorem 7.2.3; Kostochka's theorem 7.2.4; girth and dense minors, Lemma 7.2.5; Thomassen's theorem 7.2.6; Kühn–Osthus theorem 7.2.7).
  3. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §7.3 (Hadwiger's conjecture; structure of \(K^4\)-minor-free graphs, Proposition 7.3.1 and Corollaries 7.3.2–7.3.3; Wagner's theorem 7.3.4 and Corollaries 7.3.5–7.3.6; Robertson–Seymour–Thomas, Theorem 7.3.7; Kühn–Osthus, Theorem 7.3.8; Hajós's conjecture and Corollary 7.3.9).
  4. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §7.4 (density of a pair; \(\epsilon\)-regular pairs and partitions; Szemerédi's regularity lemma, Theorem 7.4.1, with Lemmas 7.4.2–7.4.4).
  5. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §7.5 (neighbourhood inheritance, Lemma 7.5.1; regularity graph and blow-up; blow-up lemma 7.5.2; proof of the Erdős–Stone theorem and the discussion of parameter order).
  6. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §7.6 (uniform pairs and homomorphism counts; Proposition 7.6.1; counting lemma 7.6.2; removal lemma 7.6.3; thinly spread copies, Theorem 7.6.4 and Corollary 7.6.5).
  7. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §7.7 (arithmetic progressions and upper density; Szemerédi's theorem 7.7.1 and 7.7.2; Roth's theorem, Proposition 7.7.3, with the tripartite construction).
  8. R. Diestel, Graph Theory, 6th ed., Springer GTM 173 (2024), §1.7 (minors, topological minors and models) and §5.2 (Lemma 5.2.3: a graph needing \(k+1\) colours has a subgraph of minimum degree at least \(k\)).
  9. G. J. Chaitin, "Register Allocation and Spilling via Graph Coloring", SIGPLAN Symposium on Compiler Construction (1982), reprinted with a retrospective in Best of PLDI 1979–1999, ACM SIGPLAN (2003). Full text.
  10. K. I. Aardal, S. P. M. van Hoesel, A. M. C. A. Koster, C. Mannino, A. Sassano, "Models and solution techniques for frequency assignment problems", Annals of Operations Research 153 (2007), 79–129. springer.com.
  11. J. H. P. Kwisthout, H. L. Bodlaender, L. C. van der Gaag, "The Necessity of Bounded Treewidth for Efficient Inference in Bayesian Networks", Proceedings of ECAI 2010, IOS Press, 237–242. iospress.nl.
  12. S. Maniu, P. Senellart, S. Jog, "An Experimental Study of the Treewidth of Real-World Graph Data", ICDT 2019. arXiv:1901.06862.
  13. D. J. Watts, S. H. Strogatz, "Collective dynamics of 'small-world' networks", Nature 393 (1998), 440–442. nature.com.
  14. M. Campos, S. Griffiths, R. Morris, J. Sahasrabudhe, "An exponential improvement for diagonal Ramsey" (2023, revised 2025). arXiv:2303.09521.