Algorithm Search⌘K

Proofs: Circle packing theorem

These are the human proofs of Circle packing theorem, at full length.

Proof of the circle packing theorem full

This proof shows: statement.

We prove that every finite simple planar graph GG is the tangency graph of a circle packing. The proof follows the variational method of Colin de Verdière. Discs are closed; a packing has discs with pairwise disjoint interiors. Two discs with disjoint interiors touch if they have a common point; then they have exactly one.

Fact 0. Three discs with pairwise disjoint interiors have no common point. Indeed, if D1D_1 and D2D_2 touch at pp, they lie on the two sides of their common tangent line at pp, and every disc that contains pp and has nonempty interior meets the interior of D1D_1 or of D2D_2 near pp.

Step 1: reduction to triangulations

If GG is a single vertex, one disc is a packing. If G=K2G = K_2, two touching discs are a packing. If GG is not connected, pack each component, scale each packing to lie in a unit square, and place the squares far apart; discs of different components then do not meet.

Lemma 1. Every connected simple plane graph GG with n≥3n \ge 3 vertices is an induced subgraph of a simple plane triangulation TT.

Proof. Each face FF of GG has a boundary walk w0,w1,…,wk−1w_0, w_1, \ldots, w_{k-1} (indices mod kk), with consecutive vertices adjacent and different. Since GG is connected and has at least two edges, k≥3k \ge 3. Inside FF add new vertices x0,…,xk−1x_0, \ldots, x_{k-1}, forming a cycle, and a vertex zz joined to all xix_i; join xix_i to wiw_i and to wi+1w_{i+1}. These edges can be drawn inside FF without crossings, following the walk. The region of FF is now cut into the triangles wiwi+1xiw_i w_{i+1} x_i, xi−1wixix_{i-1} w_i x_i and zxixi+1z x_i x_{i+1}. No edge between two old vertices is added, and no parallel edge arises, since wi≠wi+1w_i \ne w_{i+1} and the new vertices of different faces are different. So the result is a simple plane graph with only triangular faces, in which GG is induced. □\square

If (Dv)(D_v) is a packing with tangency graph TT, the discs of the vertices of GG form a packing whose tangency graph is the subgraph of TT induced by V(G)V(G), which is GG. So it suffices to prove the theorem for a simple plane triangulation TT with n≥4n \ge 4 vertices (for n=3n = 3 take three pairwise touching unit discs). Fix the outer face abca b c, and let II be the set of the n−3n - 3 inner vertices. By Euler's formula TT has 2n−42n - 4 faces, so 2n−52n - 5 inner faces. The orientation of the plane gives each inner face a counterclockwise order of its three vertices.

Step 2: angles of a triangle of discs

For radii r1,r2,r3>0r_1, r_2, r_3 > 0, the centers of three pairwise touching discs form a triangle with sides r1+r2r_1 + r_2, r2+r3r_2 + r_3, r1+r3r_1 + r_3; these lengths satisfy the strict triangle inequality. Let αi\alpha_i be its angle at the center of disc ii and s=r1+r2+r3s = r_1 + r_2 + r_3. The law of cosines gives

cos⁡α1=1−2r2r3(r1+r2)(r1+r3),tan⁡2α12=r2r3r1s.\cos \alpha_1 = 1 - \frac{2 r_2 r_3}{(r_1 + r_2)(r_1 + r_3)}, \qquad \tan^2 \frac{\alpha_1}{2} = \frac{r_2 r_3}{r_1 s}.

Lemma 2. Write ri=euir_i = e^{u_i}. For i≠ji \ne j, with kk the third index,

∂αi∂uj=cij:=1ri+rjr1r2r3s>0,\frac{\partial \alpha_i}{\partial u_j} = c_{ij} := \frac{1}{r_i + r_j} \sqrt{\frac{r_1 r_2 r_3}{s}} > 0,

which is symmetric in ii and jj, and ∂αi/∂ui=−∑j≠icij\partial \alpha_i / \partial u_i = -\sum_{j \ne i} c_{ij}.

Proof. Take i=1i = 1, j=2j = 2, and t=tan⁡(α1/2)t = \tan(\alpha_1/2). Then ∂log⁡t2/∂u2=r2 ∂(log⁡r2−log⁡s)/∂r2=1−r2/s=(r1+r3)/s\partial \log t^2 / \partial u_2 = r_2 \, \partial (\log r_2 - \log s) / \partial r_2 = 1 - r_2/s = (r_1 + r_3)/s. Since α1=2arctan⁡t\alpha_1 = 2 \arctan t, ∂α1/∂u2=t1+t2⋅r1+r3s\partial \alpha_1 / \partial u_2 = \frac{t}{1 + t^2} \cdot \frac{r_1 + r_3}{s}. Now 1+t2=(r1s+r2r3)/(r1s)=(r1+r2)(r1+r3)/(r1s)1 + t^2 = (r_1 s + r_2 r_3)/(r_1 s) = (r_1 + r_2)(r_1 + r_3)/(r_1 s), so

∂α1∂u2=r2r3r1s⋅r1s(r1+r2)(r1+r3)⋅r1+r3s=r1r1+r2r2r3r1s=c12.\frac{\partial \alpha_1}{\partial u_2} = \sqrt{\frac{r_2 r_3}{r_1 s}} \cdot \frac{r_1 s}{(r_1 + r_2)(r_1 + r_3)} \cdot \frac{r_1 + r_3}{s} = \frac{r_1}{r_1 + r_2} \sqrt{\frac{r_2 r_3}{r_1 s}} = c_{12}.

The other pairs follow by symmetry. The angles add up to π\pi for all uu, so the derivatives of α1+α2+α3\alpha_1 + \alpha_2 + \alpha_3 vanish, and the diagonal entries are as stated. □\square

Lemma 3 (limits). Fix w∈R3w \in \mathbb{R}^3 and put u=twu = t w. Then, as t→∞t \to \infty, w1α1+w2α2+w3α3→πmin⁡iwiw_1 \alpha_1 + w_2 \alpha_2 + w_3 \alpha_3 \to \pi \min_i w_i.

Proof. Order so that w1≥w2≥w3w_1 \ge w_2 \ge w_3. From the cosine formula, αi→0\alpha_i \to 0 if rj/ri→0r_j / r_i \to 0 for some j≠ij \ne i, and αi→π\alpha_i \to \pi if ri/rj→0r_i / r_j \to 0 for both j≠ij \ne i. If w2>w3w_2 > w_3: α1,α2→0\alpha_1, \alpha_2 \to 0 and α3→π\alpha_3 \to \pi, so the limit is πw3\pi w_3. If w1>w2=w3w_1 > w_2 = w_3: α1→0\alpha_1 \to 0, and α2=α3\alpha_2 = \alpha_3 by symmetry, so both tend to π/2\pi/2, and the limit is πw2=πw3\pi w_2 = \pi w_3. If w1=w2=w3w_1 = w_2 = w_3: the radii are equal, every angle is π/3\pi/3, and the sum is πw3\pi w_3. □\square

Step 3: the functional

On one triangle, by Lemma 2 the form ∑iαi dui\sum_i \alpha_i \, du_i on R3\mathbb{R}^3 has a symmetric derivative matrix, so it is closed, and since R3\mathbb{R}^3 is simply connected it is the differential of a smooth function F(u1,u2,u3)F(u_1, u_2, u_3) with F(0)=0F(0) = 0. The Hessian HH of FF is the matrix of Lemma 2, so for x∈R3x \in \mathbb{R}^3

xTHx=−∑i<jcij(xi−xj)2≤0.x^{\mathsf T} H x = -\sum_{i < j} c_{ij} (x_i - x_j)^2 \le 0.

For u∈RIu \in \mathbb{R}^I, extend uu by ua=ub=uc=0u_a = u_b = u_c = 0 (outer radii 1) and define

Φ(u)=∑inner faces fF(u∣f)−2π∑v∈Iuv,\Phi(u) = \sum_{\text{inner faces } f} F(u|_f) - 2\pi \sum_{v \in I} u_v,

where u∣fu|_f is uu on the three vertices of ff. For an inner vertex vv, ∂Φ/∂uv=θv(u)−2π\partial \Phi / \partial u_v = \theta_v(u) - 2\pi, where θv\theta_v is the sum of the angles at vv over the faces at vv.

Lemma 4. Φ\Phi is strictly concave on RI\mathbb{R}^I.

Proof. For x∈RIx \in \mathbb{R}^I, extended by 0 on a,b,ca, b, c, the Hessian form is −∑f∑i<j∈fcijf(xi−xj)2-\sum_f \sum_{i < j \in f} c^f_{ij} (x_i - x_j)^2. It vanishes only if xi=xjx_i = x_j for every edge ijij, so xx is constant on the connected graph TT, and x=0x = 0 because xa=0x_a = 0. □\square

Step 4: a maximum exists

Lemma 5. (a) A set S⊆IS \subseteq I with k≥1k \ge 1 vertices contains all three vertices of fewer than 2k2k inner faces. (b) A nonempty set U⊆IU \subseteq I meets more than 2∣U∣2|U| inner faces.

Proof. (a) A face of TT whose three vertices lie in SS is a bounded face of the plane graph T[S]T[S], because its interior contains no vertex or edge of TT. Different faces of TT give different faces of T[S]T[S]. If k≤2k \le 2 there is no such face. If k≥3k \ge 3, the simple plane graph T[S]T[S] has at most 2k−42k - 4 faces, one of them unbounded, so there are at most 2k−5<2k2k - 5 < 2k such faces.

(b) Let W=V∖UW = V \setminus U, which contains a,b,ca, b, c. As in (a), the inner faces of TT with all vertices in WW are bounded faces of T[W]T[W], which has at most 2∣W∣−42|W| - 4 faces. The unbounded face of T[W]T[W] is outside the triangle abca b c. A vertex of UU lies inside the triangle abca b c, so it lies in a bounded face of T[W]T[W], and that face is not a face of TT. So at most 2∣W∣−62|W| - 6 inner faces of TT avoid UU, and at least (2n−5)−(2∣W∣−6)=2∣U∣+1(2n - 5) - (2|W| - 6) = 2|U| + 1 meet UU. □\square

Lemma 6. For every w∈RI∖{0}w \in \mathbb{R}^I \setminus \{0\}, Φ(tw)→−∞\Phi(t w) \to -\infty as t→∞t \to \infty.

Proof. The function g(t)=Φ(tw)g(t) = \Phi(t w) is concave, and g′(t)=∑f∑v∈fwvαvf(tw)−2π∑v∈Iwvg'(t) = \sum_f \sum_{v \in f} w_v \alpha^f_v(t w) - 2\pi \sum_{v \in I} w_v with w=0w = 0 on a,b,ca, b, c. By Lemma 3, g′(t)→L=π∑fmin⁡v∈fwv−2π∑v∈Iwvg'(t) \to L = \pi \sum_f \min_{v \in f} w_v - 2\pi \sum_{v \in I} w_v. Write each real number yy as y=∫0∞[y≥λ] dλ−∫−∞0[y<λ] dλy = \int_0^\infty [y \ge \lambda] \, d\lambda - \int_{-\infty}^0 [y < \lambda] \, d\lambda, with [⋅][\cdot] equal to 1 or 0. For λ>0\lambda > 0 let Sλ={v:wv≥λ}⊆IS_\lambda = \{v : w_v \ge \lambda\} \subseteq I, and for λ≤0\lambda \le 0 let Uλ={v:wv<λ}⊆IU_\lambda = \{v : w_v < \lambda\} \subseteq I. Then min⁡v∈fwv≥λ\min_{v \in f} w_v \ge \lambda exactly when f⊆Sλf \subseteq S_\lambda, and min⁡v∈fwv<λ\min_{v \in f} w_v < \lambda exactly when ff meets UλU_\lambda. So

Lπ=∫0∞(N⊆(Sλ)−2∣Sλ∣)dλ−∫−∞0(N∩(Uλ)−2∣Uλ∣)dλ,\frac{L}{\pi} = \int_0^\infty \bigl(N_{\subseteq}(S_\lambda) - 2|S_\lambda|\bigr) d\lambda - \int_{-\infty}^0 \bigl(N_{\cap}(U_\lambda) - 2|U_\lambda|\bigr) d\lambda,

where N⊆(S)N_{\subseteq}(S) counts the inner faces inside SS and N∩(U)N_{\cap}(U) the inner faces meeting UU. By Lemma 5 both integrands give a negative contribution whenever the set is nonempty, and they are 0 when it is empty. Since w≠0w \ne 0, one of the sets is nonempty for all λ\lambda in an interval of positive length. So L<0L < 0, and since gg is concave with g′→L<0g' \to L < 0, g(t)→−∞g(t) \to -\infty. □\square

Let K={u:Φ(u)≥Φ(0)}K = \{u : \Phi(u) \ge \Phi(0)\}. It is closed and convex. If it were unbounded, it would contain a ray {tw:t≥0}\{t w : t \ge 0\} with w≠0w \ne 0 (a closed convex unbounded set contains a ray from each of its points), which contradicts Lemma 6. So KK is compact, and Φ\Phi attains its maximum at some u∗u^*. There the gradient vanishes: θv(u∗)=2π\theta_v(u^*) = 2\pi for every v∈Iv \in I. By Lemma 4 the maximum, and so the radii with ra=rb=rc=1r_a = r_b = r_c = 1, are unique. Put rv=euv∗r_v = e^{u^*_v}.

Step 5: layout

For each inner face f=ijkf = ijk (counterclockwise) let Δf\Delta_f be the triangle with sides ri+rjr_i + r_j, rj+rkr_j + r_k, ri+rkr_i + r_k. The inner faces of TT form a closed disc ∣T∣|T| (the triangle abca b c with its interior). Place one triangle with the correct orientation, then place each face that shares an edge with a placed face across that edge, again with the correct orientation. Around an inner vertex vv the triangles at vv are placed in rotation order with angles that add up to θv=2π\theta_v = 2\pi, so going once around vv brings each triangle back to its first position. Since ∣T∣|T| is simply connected and these loops around inner vertices generate all closed paths of faces, the placement does not depend on the order. This gives a continuous map ϕ:∣T∣→R2\phi : |T| \to \mathbb{R}^2 that is linear and orientation preserving on each face. It is one-to-one near every point: inside a face and on an inner edge clearly, at an inner vertex because the angles there add up to exactly 2π2\pi, and at an outer vertex xx because its angle sum θx\theta_x is less than 2π2\pi, as follows.

The angles of all inner faces add up to π(2n−5)\pi (2n - 5), and the inner vertices use 2π(n−3)2\pi (n - 3). So θa+θb+θc=π\theta_a + \theta_b + \theta_c = \pi, and each is in (0,π)(0, \pi). The boundary of ∣T∣|T| is mapped to a closed polygon with sides ra+rb=rb+rc=ra+rc=2r_a + r_b = r_b + r_c = r_a + r_c = 2 and interior angles θa,θb,θc\theta_a, \theta_b, \theta_c; with all angles less than π\pi this is a triangle, and since its sides are equal, it is the equilateral triangle EE with side 2, traversed once counterclockwise.

For a point p∉∂Ep \notin \partial E, the number of preimages of pp under ϕ\phi equals the winding number of ϕ(∂∣T∣)=∂E\phi(\partial |T|) = \partial E around pp, because ϕ\phi is an orientation preserving local homeomorphism (this is the degree of a map of a disc). So points inside EE have exactly one preimage and points outside have none. A point of ∂E\partial E has no preimage in the interior of ∣T∣|T|, since a neighbourhood of that preimage would be mapped onto a neighbourhood of the point, which contains points outside EE. So ϕ\phi is one-to-one and continuous on the compact ∣T∣|T|, hence a homeomorphism onto EE, and the triangles ϕ(f)\phi(f) tile EE without overlap. Put pv=ϕ(v)p_v = \phi(v) and DvD_v the disc with center pvp_v and radius rvr_v.

Step 6: the discs form the packing

For an edge uvuv, ∣pu−pv∣=ru+rv|p_u - p_v| = r_u + r_v, so DuD_u and DvD_v touch.

Lemma 7. In a face triangle ϕ(f)\phi(f) with f=xyzf = x y z, Dx∩ϕ(f)D_x \cap \phi(f) is the sector of DxD_x in the angle of the triangle at pxp_x, and DxD_x meets the side pypzp_y p_z at no point.

Proof. The segment pypzp_y p_z has length ry+rzr_y + r_z, so it is the union of the radius of DyD_y and the radius of DzD_z toward each other, and lies in Dy∪DzD_y \cup D_z. The disc DxD_x touches DyD_y only at a point of the segment pxpyp_x p_y, and DzD_z only at a point of pxpzp_x p_z; by Fact 0 neither point is on pypzp_y p_z. So DxD_x misses the side pypzp_y p_z. If a point qq of the sector were outside the triangle, the segment from pxp_x to qq, which lies in DxD_x, would cross the side pypzp_y p_z. □\square

For every vertex vv, Dv∩ED_v \cap E is the union of the sectors of DvD_v in the faces at vv. For an inner vertex this holds because the angles at vv add up to 2π2\pi, so the sectors make up the whole disc and Dv⊆ED_v \subseteq E. For an outer vertex the faces at vv fill the angle π/3\pi/3 of EE at pvp_v, and EE lies in that angle. Now let u≠vu \ne v be vertices with a common point q∈Du∩Dvq \in D_u \cap D_v.

If qq is outside EE, then uu and vv are outer, so uvuv is an edge. Otherwise qq is in a sector of uu in some face ff and in a sector of vv in some face gg. If f=gf = g, then uu and vv are two vertices of one face, so uvuv is an edge. If f≠gf \ne g, the faces have disjoint interiors, so qq lies on the boundary of both, which is in the union of the edges. By Lemma 7, a sector of uu meets the boundary of its face only on the two sides at pup_u, at distance at most rur_u from pup_u. So qq lies on an edge ee at uu, at distance at most rur_u from pup_u, and on an edge e′e' at vv, at distance at most rvr_v from pvp_v. The other end pxp_x of ee is at distance ru+rx>rur_u + r_x > r_u from pup_u, so q≠pxq \ne p_x; in the same way qq is not the end of e′e' other than pvp_v. If e≠e′e \ne e', the two segments meet only at a common end, which would force q=pu=pvq = p_u = p_v, impossible since ϕ\phi is one-to-one. So e=e′e = e' is the edge uvuv.

Interiors: two discs of a common face have disjoint interiors, since the distance of the centers is the sum of the radii; sectors of different faces have disjoint interiors because the faces do; and outer discs are pairwise adjacent. So the interiors of all discs are pairwise disjoint, and two discs touch exactly when their vertices are adjacent. This proves the theorem for TT, and by Step 1 for every planar graph. ■\blacksquare

Back to Circle packing theorem