Packing Disks into Disks with Optimal Worst-Case Density

We provide a tight result for a fundamental problem arising from packing disks into a circular container: The critical density of packing disks in a disk is 0.5. This implies that any set of (not necessarily equal) disks of total area $\delta\leq 1/2$ can always be packed into a disk of area 1; on the other hand, for any $\varepsilon>0$ there are sets of disks of area $1/2+\varepsilon$ that cannot be packed. The proof uses a careful manual analysis, complemented by a minor automatic part that is based on interval arithmetic. Beyond the basic mathematical importance, our result is also useful as a blackbox lemma for the analysis of recursive packing algorithms.


Introduction
Deciding whether a set of disks can be packed into a given container is a fundamental geometric optimization problem that has attracted considerable attention. Disk packing also has numerous applications in engineering, science, operational research and everyday life, e.g., for the design of digital modulation schemes [21], packaging cylinders [1,7], bundling tubes or cables [24,26], the cutting industry [25], or the layout of control panels [1], or radio tower placement [25]. Further applications stem from chemistry [27], foresting [25], and origami design [13].
Like many other packing problems, disk packing is typically quite difficult; what is more, the combinatorial hardness is compounded by the geometric complications of dealing with irrational coordinates that arise when packing circular objects. This is reflected by the limitations of provably optimal results for the optimal value for the smallest sufficient disk container (and hence, the densest such disk packing in a disk container), a problem that was discussed by Kraviz [12] in 1967: Even when the input consists of just 13 unit disks, the optimal value for the densest disk-in-disk packing was only established in 2003 [6], while the optimal value for 14 unit disks is still unproven. The enormous challenges of establishing densest disk packings are also illustrated by a long-standing open conjecture by Erdős and Oler from 1961 [20] regarding optimal packings of n unit disks into an equilateral triangle, which has only been proven up to n = 15. For other examples of mathematical work on densely packing relatively small numbers of identical disks, see [4,5,8,16], and [9,15,22] for related experimental work. Many authors have considered heuristics for circle packing problems, see [10,25] for overviews of numerous heuristics and optimization methods. The best known solutions for packing equal disks into squares, triangles and other shapes are continuously published on Specht's website http://packomania.com [23].
For the case of packing not necessarily equal disks into a square container, Demaine, Fekete, and Lang in 2010 [2] showed that deciding whether a given set of disks can be packed is NP-hard by using a reduction from 3-Partition. This means that there is (probably) no deterministic polynomial-time algorithm that can decide whether a given set of disks can be packed into a given container.
On the other hand, the literature on exact approximation algorithms which actually give performance guarantees is small. Miyazawa et al. [17] devised asymptotic polynomial-time approximation schemes for packing disks into the smallest number of unit square bins. More recently, Hokama, Miyazawa, and Schouery [11] developed a bounded-space competitive algorithm for the online version of that problem.
The related problem of packing square objects has also been studied for a long time. The decision problem whether it is possible to pack a given set of squares into the unit square was shown to be strongly NP-complete by Leung et al. [14], also using a reduction from 3-Partition. Already in 1967, Moon and Moser [18] found a sufficient condition. They proved that it is possible to pack a set of squares into the unit square in a shelf-like manner if their combined area, the sum of all squares' areas, does not exceed 1 2 . At the same time, 1 2 is the largest upper area bound one can hope for, because two squares larger than the quarter-squares shown in Figure 1 cannot be packed. We call the ratio between the largest combined object area that can always be packed and the area of the container the problem's critical density, or optimal worst-case density.
The equivalent problem of establishing the critical packing density for disks in a square was posed by Demaine, Fekete, and Lang [2] and resolved by Morr, Fekete and Scheffer [3,19]. Making use of a recursive procedure for cutting the container into triangular pieces, they proved that the critical packing density of disks in a square is π 3+2 √ 2 ≈ 0.539. It is quite natural to consider the analogous question of establishing the critical packing density for disks in a disk. However, the shelf-packing approach of Moon and Moser [18] uses the fact that rectangular shapes of the packed objects fit well into parallel shelves, which is not the case for disks; on the other hand, the split packing method of Morr et al. [3,19] relies on recursively splitting triangular containers, so it does not work for a circular container that cannot be partitioned into smaller circular pieces.

Results
We prove that the critical density for packing disks into a disk is 1/2: Any set of not necessarily equal disks with a combined area of not more than half the area of a circular container can be packed; this is best possibly, as for any ε > 0 there are instances of total area 1/2 + ε that cannot be packed. See Fig. 2 for the critical configuration.
Our proofs are constructive, so they can also be used as a constant-factor approximation algorithm for the smallest-area container of a given shape in which a given set of disks can be packed. Due to the higher geometric difficulty of fitting together circular objects, the involved methods are considerably more complex than those for square containers. We make up for this difficulty by developing more intricate recursive arguments, including appropriate and powerful tools based on interval arithmetic.

Preliminaries
Let r 1 , . . . , r n be a set of disks in the plane. Two point sets A, B ⊂ R 2 overlap if their interiors have a point in common. A container disk C is a disk that may overlap with disks from {r 1 , . . . , r n }. The original container disk O is the unit disk. Due to recursive calls of our algorithm there may be several container disks that lie nested inside each other. Hence, the largest container disk will be the unit disk O. For simplification, we Figure 2: (1) A critical instance that allows a packing density no better than 1 2 . (2) An example packing produced by our algorithm.
simultaneously denote by r i or C the disk with radius r i or C and its radius. Wl.o.g., we assume r 1 ≥ . . . ≥ r n . We pack the disks r 1 , . . . , r n by positioning their centers inside a container disk such that r i lies inside C and two disks from {r 1 , . . . , r n } do not overlap. Given two sets A ⊆ B ⊆ R 2 , we say that A is a sector of B. Furthermore, we denote the volume of a point set A by |A|.

A Worst-Case Optimal Algorithm
Definition 1. Every set of disks with total area π 2 can be packed into the unit disk O with radius 1. This induces a worst-case optimal packing density of 1 2 , i.e., a ratio of 1 2 between the area of the unit disk and the total area to be packed.
The worst case consists of two disks D 1 , D 2 with radius 1 2 , see Fig. 2. The total area of these two disks is π 4 + π 4 = π 2 , while the smallest disk containing D 1 , D 2 has an area of π. In the remainder of Section 3, we give a constructive proof for Theorem 1. Before we proceed to describe our algorithm in Section 3.4, we give some definitions and describe Boundary Packing and Ring Packing as two subroutines of our algorithm.

Preliminaries for the Algorithm
We make use of the following definitions, see Fig. 3.
For r out > r in > 0 and a container disk C such that r out ≤ 2r in , we define a ring R := R[r out , r in ] of C as the closure of r out \ r in , see Fig. 3. The boundary of R consists of two connected components. The inner boundary is the component that lies closer to the center m of r out and the outer boundary is the other component. The inner radius and the outer radius of R are the radius of the inner boundary and the radius of outer boundary. Each ring is associated with one of three states {open, closed, full}. Initially, each ring is open.
Let r be a disk inside a container disk C. The two tangents of r are the two rays starting in the midpoint of C and touching the boundary of r. We say that a disk lies adjacent to r out when the disk is touching the boundary of r out from the inside of r out .

Boundary Packing: A Subroutine
Consider a container disk C, a (possibly empty) set S of already packed disks that overlap with C, and another disk r i to be packed, see Fig. 4. We pack r i into C adjacently to the boundary of C as follows: Let α be w R r m 1 r out ri n Figure 3: A ring R ⊂ O with width w and a disk with its corresponding tangents. Figure 4: Boundary Packing places disks into a container disk C adjacent to the boundary of C as long as the diameter of the disks to be packed is at least as large as a given threshold T or until the current disk does no longer fit into C. Initially, we have T = 1 4 .
the maximal polar angle realized by a midpoint of a disk from S. We choose the midpoint of r i realizing the smallest possible polar angle β ≥ α such that r i touches the outer boundary of C from the interior of C without overlapping another disk from S, see Fig. 4. If r i cannot be packed into C, we say that r i does not fit into R. Let 0 < T ≤ 1 4 , called the threshold. Boundary Packing iteratively packs disks in decreasing order into C until the current disk r i does not fit into C or the radius of r i is smaller than T .

Ring Packing: A Subroutine
Consider a ring R := R[r out , r in ] with inner radius r in and outer radius r out , a (possibly empty) set S of already packed disks that overlap with R, and another disk r i to be packed, see Fig. 5. We pack r i into R adjacent to the outer (inner) boundary of R as follows: Let α be the maximal polar angle realized by a midpoint of a disk from S. We choose the midpoint of r i realizing the smallest possible polar angle β ≥ α such that r i touches the outer (inner) boundary of R from the interior of R without overlapping another disk from S. If r i cannot be packed into R, we say that r i does not fit into R (adjacent to the outer (inner) boundary).
Ring Packing iteratively packs disks into R alternating adjacent to the inner and outer boundary. If the current disk r i does not fit into R Ring Packing stops and we declare R to be full. If r i−1 and r i could pass each other, i.e., the sum of the diameters of r i−1 and r i are smaller than the width of R, Ring Packing stops and we declare R to be closed.

Description of the Algorithm
Our algorithm creates rings. A ring only exists after it is created. We stop packing at any point in time when all disks are packed. Furthermore, we store the current threshold T for Boundary Packing and the smallest inner radius r min of a ring created during the entire run of our algorithm. Initially, we set T ← 1 2 , r min ← 1. Our algorithm works in five phases: • Phase 1 -Recursion: If r 1 , r 2 ≥ 0.495C, apply Boundary Packing to r 1 , r 2 , update C as the largest disk that fits into C and T as the radius of C, and recurse on C, see Fig. 6.
• Phase 2 -Boundary Packing: Let r be the radius of C. If the midpoint m of C lies inside a packed disk r i , let d be the minimal distance of m to the boundary of r i , see Fig. 6 4 Analysis of the Algorithm

Analysis of Phase 1 -The Recursion
If r 2 ≥ 0.495, Lemma 2 allows us to recurse on C as required by Phase 1.   Figure 6: (a): If r 1 , r 2 ≥ 0495C, Boundary Packing packs r 1 , r 2 into C. We update the current container disk C as the largest disk that fits into C and recurse on C with r 3 , . . . , r n . (b): Determining the threshold T for disks packed by Boundary Packing.  Figure 7: If r 2 ≥ 0.495, we can pack r 1 , r 2 into container disks D 1 , D 2 and recurse on a third disk c whose area is twice the total area of the remaining disks.
Lemma 2. If r 1 , r 2 ≥ 0.495C, the volume of the largest container disk that fits into C after packing r 1 , r 2 is at least twice the total volume of r 3 , . . . , r n , see Fig. 7.
Proof. W.l.o.g., assume that the original container disk is the unit disk. Lemma 3 implies r 1 + r 2 ≤ 1, which means r 1 , r 2 ≤ 0.505, because r 2 ≥ 0.495. Furthermore, r 1 + r 2 ≤ 1 implies that we can move (w.l.o.g.) r 1 , r 2 into two disks D 1 , D 2 with radius 0.505, touching the boundary of C and with their midpoints m 1 , m 2 on the horizontal diameter of C, see Fig. 7. This decreases the volume of the largest disk that still fits into C. Consider the disk C := 1 5 lying adjacent to C and with its midpoint m on the vertical diameter 1 of C. Pythagoras' Theorem implies that |m 1 m| = (1 − 0.505) 2 + 1 − 1 5 2 ≈ 0.94075 > 0.505 + 1 5 . Finally, we observe that the area of C is π 25 = 0.4π > 0.0199 = 2 π 2 − 2 · π0.495 2 . This means that the area of C is twice the total area of the remaining disks r 3 , r 4 , r 5 , ..., concluding the proof.
A technical key ingredient in the proof of Lemma 2 is the following lemma: Lemma 3. The area of two disks r 1 , r 2 is at least π 2 (r 1 + r 2 ) 2 .
Proof. The first derivative of the function mapping a radius onto the area of the corresponding disk is the periphery of the corresponding circle. As r 1 ≥ r 2 , decreasing r 1 and increasing r 2 by the same value δ reduces the total area of r 1 , r 2 , while the value r 1 + r 2 stays the same. Hence, we assume w.l.o.g. that r 1 = r 2 . This implies that the total area of r 1 , r 2 is 2πr 2 1 = π 2 (r 1 + r 2 ) 2 , concluding the proof.
This allows us to assume r 2 < 0.495C during the following analysis.

Outline of the Remaining Analysis
Once our algorithm stops making recursive calls, i.e., stops applying Phase 1, Phase 1 is never applied again. W.l.o.g., let r 1 , . . . , r n be the remaining disks and O the container disk after the final recursion call. The main idea of the remaining analysis is the following: We cover the original container disk O by a set of sectors that are subsets of O. Let r i be a disk packed by Boundary Packing into the current container disk C. We define the cone induced by r i as the area of C between the two tangents of r i . We say that C is the radius of the cone. A sector is a subset of O.
Each disk pays portions, called atomic potentials, of its volume to different sectors of O. The total atomic potential paid by a disk r will be at most the volume of the disk r. Let A 1 , . . . , A k be the total atomic potentials paid to the sectors S 1 , . . . , S k ⊂ O. The potential of a sector S ⊆ O is the sum of the proportionate atomic potentials from S 1 , . . . , S k , i.e., the sum of all |Si∩S| |Si| A i for i = 1, . . . , k. The (virtual packing) density ρ(S) of the sector S is defined as the ratio between the potential of S and the volume of S. If a sector achieves a density of 1 2 , we say that the sector is saturated, otherwise its unsaturated. Our approach for proving Theorem 1 is by induction over n. In particular, we assume that O \ C is saturated; we show that each disk r i can be packed by our algorithm, as long as C is unsaturated implying that each set of disks with total volume of at most |O| 2 is packed. For a simplification, we assume for the remainder of the paper that C is the unit disk, i.e., C = 1.
We consider the configuration achieved after termination.

Observation 4.
If there is a ring that is neither full nor closed, all disks are packed.
Thus, we assume that all rings computed by our algorithm are full or closed. In order to avoid that Boundary Packing stops due to a disk r not fitting, we consider the gap that is left by Boundary Packing, see Fig. 9. This gap achieves its maximum for r = 1 4 . In order to ensure that even in this case the entire container C is saturated, we guarantee that C has a density of

Analysis of Boundary Packing
The following lemma is the key ingredient for the analysis of Boundary Packing.
Proof. Let f (r) := The following lemma proves that all disks r i ≥ C 4 that are in line to be packed into a container disk C can indeed be packed into C. Lemma 6. All disks r i ≥ 1 4 that are in line to be packed into C by Boundary Packing do fit into C.
Proof. Assume that there is a largest disk r k ≥ 1 4 not packed adjacent to C. Each disk r i from r 1 , . . . , r k−1 pays its entire volume to the cone induced by r i . Lemma 5 implies that each cone is saturated. As r k does not fit between r 1 , r k−1 and is adjacent to C, Lemma 5 implies that the area of C that is not covered by a cone induced by r 1 , . . . , r k−1 has a volume smaller than twice the volume of r k . This implies that the total volume of r 1 , . . . , r k , is larger than half of the volume of C. This implies that the total input volume of r 1 , . . . , r n is larger than twice the volume of the container. This is a contradiction, concluding the proof.
Corollary 7. If r n ≥ 1 4 , our algorithm packs all input disks. Thus, we assume w.l.o.g. r n < 1 4 , implying that our algorithm creates rings.
density ≥ ρ density ≥ 0.5 Figure 9: Ensuring a density of at least 0.5 for a ring R needs a density of 0.5606 for R \ C.

Analysis of Ring Packing
For the following definition, see Fig. 11 (Middle).

Definition 8.
A zipper Z is a (maximal) sequence r k , . . . , r of disks that are packed into a ring R during an application of Ring Packing. The length of Z is defined as k − + 1.
Consider a zipper r k , . . . , r packed into a ring R. For a simplified presentation, we assume in Section 4.4 that the lower tangent of r k realizes a polar angle of zero, see Fig. 11.
We refine the potential assignments of zippers as follows. Let Z = r k , . . . , r be an arbitrary zipper and R the ring into which Z is packed. In order to subdivide R into sectors corresponding to specific parts of the zipper, we consider for each disk r i the center ray, which is the ray starting from m and passing the midpoint of r i . Let t 1 , t 2 be two rays starting in m. We say that t 1 lies above t 2 when the polar angle realized by t 1 is at least as large as the polar angle realized by t 2 . t 1 is the minimum (maximum) of t 1 , t 2 if t 1 does not lie above (below) t 2 . Furthermore, the upper tangent (lower tangent) of a disk r i is the maximal (minimal) tangent of r i .
If the zipper Z consists of one disk r k , the sector S of Z is that part of R between the two tangents to r k and r k pays its entire volume to S. Lemma 9. The density of the sector S of a zipper of length one is at least 0.77036.
Proof. As the zipper consists of only one disk r k , r k touches both the inner and the outer boundary of R. Hence, the density of S is not increased by assuming that the inner radius of R is equal to the diameter of r k . Hence, the density of S is at least Assume the zipper r k , . . . , r consists of at least two disks. We define the adjacency graph G = ({r k , . . . , r }, E) as a directed graph as follows: There is an edge (r j , r i ) if (1) r i ≤ r j and (2) r i , r j are touching each other, see Fig. 11 (Right). As Ring Packing packs each disk r i with midpoint m i such that m i realizes the smallest possible polar angle, there is a path e k , . . . , e −1 =: P connecting r k to r in the adjacency graph G, see Fig. 11 (Middle). e k is the start edge of P and e −1 is the end edge of P . The remaining edges of P that are neither the start nor the end edge of G, are middle edges of P . Furthermore, an edge (r j , r m ) = e i ∈ P is diagonal if r j , r m are touching different boundary components of R. Otherwise, we call e i vertical. Depending on whether e i is a start, middle, or an end edge and on whether e i is diagonal or vertical, we classify the edges of the path P by eight different types T1-T8. For each type we individually define the sector A i belonging to an edge (r j , r m ) = e i ∈ P and the potential assigned to A i , called the potential of e i .
Let t lower be the minimum of the lower tangents of r j , r m and t upper the maximum of the upper tangents of r j , r m , see Fig. 12 (a). Furthermore, let t 1 , t 2 be the center rays of r j , r m , such that t 1 does not lie above For the case that e i = (r j , r m ) is a vertical edge, we consider additionally the disk r p that is packed into R after r j and before r m , see Fig. 12 (f). Let t 3 be the maximum of t 2 and the upper tangent of r p , see Fig. 12. (e) diagonal start and end edge T4: Figure 12: The eight possible configurations of an edge e i (red) of P , the corresponding sectors (light gray), and the potentials (dark gray) payed by the involved disks to the sector. T1 The sector of e i : If e i = (r j , r m ) is a diagonal start edge (as shown in Fig. 12(b)), the sector of e i is that part of R that lies between t lower and t 2 .
The potential of e i : r j pays its entire volume and r m the half of its volume to the sector of e i .

T2
The sector of e i : If e i = (r j , r m ) is a diagonal middle edge, (as shown in Fig. 12(c)), the sector of e i is that part of R that lies between t 1 and t 2 .
The potential of e i : r j and r m pay the half of its volume to the sector of e i .

T3
The sector of e i : If e i = (r j , r m ) is a diagonal end edge, (as shown in Fig. 12(d)), the sector of e i consists of two parts: (1) The first is the part of R that lies between the upper tangent and the center ray of r j . (2) Let R m be the smallest ring enclosing r m . The second part of the sector is that part of R m that lies between the upper tangent of r m and the minimum of t 1 and the lower tangent of r m .
The potential of e i : r j pays the half of its volume and r m its entire volume to the sector of e i .

T4
The sector of e i : If e i = (r j , r m ) is a diagonal start and end edge, (as shown in Fig. 12(e)), the sector of e i is the union of two sectors: (1) The first is the part of R that lies between the lower and the upper tangent of r j . (2) The second is that part of R m that lies between the lower and the upper tangent of r m .
The potential of e i : r j , r m pay their entire volume to the sector of e i .

T5
The sector of e i : If e i = (r j , r m ) is a vertical start edge, (as shown in Fig. 12(g)), the sector of e i is that part of R that lies between the minimum of the lower tangents of r j , r p and the center ray of r m .
The potential of e i : r j , r p pay their entire volume and r m the half of its volume to the sector of e i .

T6
The sector of e i : If e i = (r j , r m ) is a vertical middle edge, (as shown in Fig. 12(h)), the sector of e i is that part of R that lies between the center rays of r j , r m .
The potential of e i : r p pays its entire volume and r j , r m pay half of their respective volume to the sector of e i .

T7
The sector of e i : If e i = (r j , r m ) is a vertical end edge, (as shown in Fig. 12(i)), the sector of e i consists of two parts: (1) The first is that part of R that lies between the center ray of r j and the upper tangent of r p . (2) Let R m be the smallest ring enclosing r m . The second part of the sector is the part of R m that lies between the center ray of r j and the upper tangent of r m .
The potential of e i : r j pays the half of its volume and r p , r m their entire volumes to the sector of e i .

T8
The sector of e i : If e i = (r j , r m ) is a vertical start and end edge, (as shown in Fig. 12(j)), the sector of e i is consists of two parts: (1) The first is that part of R that lies between the minimum of the lower tangents of r j , r p and the maximum of the upper tangents r j , r p . (2) Let R m be the smallest ring enclosing r m . The second part of the sector is that part of R m that lies between the lower and the upper tangent of r m .
The potential of e i : r j , r p , r m pay their entire volume to the sector of e i .
For simplicity, we also call the density of the sector of an edge e i ∈ P the density of e i . The sector of a zipper is the union of the sectors of the edges of P .
Lemma 10. Let Z = r k , . . . , r be a zipper of length at least two and P a path in the adjacency graph of Z connecting r k with r . Each edge e i ∈ P has a density of at least ρ.
The proof of Lemma 10 is the only computer-assisted proof. All remaining proofs are analytic. Due to space constraints, the proof of Lemma 10 is given in the appendix. Combining Lemmas 9 and 10 yields the following.
Corollary 11. Sectors of zippers have a density of at least ρ. Ring Packing stops when the sum of the diameters of the current disk r i and the disk packed last r i−1 is smaller than the width w of the current ring, i.e., if 2r i−1 + 2r i < w. If 2r i−1 + 2r i < w, Phase 5 partitions the current ring into two new open rings with widths 2r i , w − 2r i . Hence, the sectors of zippers packed by Ring Packing become firmly interlocked without leaving any gaps between two zippers, see Fig. 13. The only sectors that we need to care about are the gaps that are left by Ring Packing due to the second break condition, i.e., the current disk does not fit into the current ring, see the black sectors in Fig. 13.
Corollary 12. Let R be a minimal ring and G its gap. R \ G has a density of at least ρ.
In order to analyze the gaps left by Ring Packing, we first need to observe for which rings we need to consider gaps. In particular, we have two break conditions for Ring Packing: (1) The current disk r i does not fit into the current ring R, causing us to close the ring and disregard it for the remainder of the algorithm?
(2) The current and the last disk r i−1 packed into R can pass one another, resulting in R to be partitioned into several rings with smaller widths. Thus, we obtain that two computed rings R 1 , R 2 either do not overlap or R 1 lies inside R 2 . This motivates the following definition.
Definition 13. Consider the set of all rings R 1 , . . . , R k computed by our algorithm By construction of the algorithm, each ring is partitioned into minimal rings. Thus, we define gaps only for minimal rings, see Figure 14 and Definition 14.
Definition 14. Let Z = . . . , r −1 , r be a zipper of length at least 2 inserted into a minimal ring R. The lid h of R is the ray above the upper tangent u of r such that h realizes a maximal polar angle while h ∩ R does not intersect an already packed disk r f with f ≤ − 1, see Fig. 14. The gap of R is the part of R between the upper tangent u of r −1 and the lid of R which is not covered by sectors of Z, see the white-gray striped sectors in Fig. 14.
A unit sector of R is a sector of R that lies between the two tangents of a disk touching the inner and the outer boundary of R, see  Figure 14: The lid, the gap (striped white-gray), and a unit sector of a ring R.
Next, we upper bound the volume of the gap of minimal rings.
Lemma 16. The gap of a minimal ring R has a volume of at most 1.07024U R .
Proof. As we want to upper bound the volume of the gap w.r.t. the unit volume U R of R, w.l.o.g. we make the following assumptions (A1)-(A4), see Fig. 15: Figure 15: Simplifying assumptions that do not increase the density.
• (A1) The largest disk λ inside R touching h from below, the upper tangent of r from above, and the inner boundary of R, such that λ does not overlap with any other disks from below, has the same radius as r , see Fig. 15(a).
• (A2) The last disk r packed into R touches the inner boundary of R, see Fig. 15(b).
• (A3) The empty pocket A left by the sector of the end edge of the zipper inside R is bounded from below by the lower tangent of r but not by the upper tangent of r −1 , see Fig. 15(c).
Let B be the sector of R that lies between the two tangents of λ, see Fig. 15(d). We upper bound the volume of the gap of R as |A| + |B| ≤ 1.07024U R , as follows.
Let µ ⊂ R be the disk touching the inner and the outer boundary of R 1 and the upper tangent of r from above, see Fig. 15(e). Furthermore, let D be the part of the cone induced by µ which lies inside R and between the upper and lower tangent of µ, see Fig. 15(e).
In the following, we show that |A| − |D| ≤ 0.07024U R .

Analysis of the Algorithm for the Case r 1 ≤ 0.495
We show that each computed minimal ring is saturated, see Corollary 19. Let R 1 , . . . , R h ⊆ C be the created minimal rings ordered decreasingly w.r.t. their outer radii. The inner boundary of R i is the outer boundary of R i+1 for i = 1, . . . , h − 1. We show by induction over h that R := R[r out , r in ] := R h is saturated. Thus, we assume that R 1 , . . . , R h−1 are saturated, implying that C \ r out is saturated, where r out is the outer radius of R h .
For the remainder of Section 4.5, each disk r i packed by Boundary Packing pays its entire volume to the cone induced by r i . Lemma 17. Assume r n < 1 4 . There is at least one disk r k packed into R and touching both the inner and the outer boundary of R.
Proof. Assume that our algorithm did not pack a disk with radius smaller than 1 4 adjacent to C. Let r k be the largest disk not packed adjacent to C into R.
By Lemma 6, we obtain that r k is smaller than 1 4 . This implies that the volume of the sector that is not covered by the cones induced by r 1 , . . . , r k−1 is upper bounded by arcsin 1 3 , see Fig. 16. Each disk r i from r 1 , . . . , r k−1 pays its entire volume to the cone induced by r i . Lemma 5 implies that each cone has a density of at least ρ, because r 1 , . . . , r n ≤ 0.495. This implies that the total volume of r 1 , . . . , r k−1 is at least π · ρ · 2π−2 arcsin(1/3) 2π = ρ(π − arcsin (1/3)) > π 2 contradicting the assumption that the total input volume is no larger than π 2 .
Lemma 18. R h is saturated. density ≥ ρ density ≥ 0.5 Figure 16: Ensuring density of at least ρ for all cones induced by disks packed by Boundary Packing implies a density of at least 0.5 for the entire container disk.
Proof. Let S 1 be the sector of R h that is covered by cones induced by disks packed by Boundary Packing or by sectors of zippers packed by Ring Packing. Lemma 17 implies that there is a disk r k packed into R h such that r k touches the inner and the outer boundary of R h . Let S 2 be the sector of R h between the lower and the upper tangent of r k . We move potentials δ 1 , δ 2 from S 1 , S 2 to a potential variable ∆ and guarantee that ∆ is at least 1 2 times the volume of the gap G of R h . Finally, we move ∆ to G, implying that G is saturated, which in turn implies that R h is saturated.
Lemma 9 implies that the density of S 2 is at least 0.77036. We move a potential δ 2 := (0.77036 − ρ) |S 1 |> 0.20971U R h from S 2 to ∆, implying that S 2 has still a density of ρ.
Combining Lemma 5 and Corollary 11 yields that S 1 has a density of at least ρ. Lemma 16 implies that the volume of the gap of R h is at most 1.07024U R . The volume of R h is at least Thus, the volume of S 1 is at least (9.24441 − 1.07024)U R h = 8.17417U R h . Hence, we move a potential δ 1 := ρ − 1 2 8.17417U R h > 0.49576U R h to ∆. We have ∆ = δ 1 + δ 2 > 0.49576 + 0.20971 = 0.70547, which is large enough to saturate a sector of volume V ∆ = 2 · 0.70547 = 1.41094U R h .
As |G| ≤ 1.07024, moving ∆ to G yields that G is saturated, which implies that R h is saturated. This concludes the proof.
Corollary 19. Each minimal ring is saturated.
As each ring can be partitioned into minimal rings, we obtain the following.
Corollary 20. All rings are saturated.
Combining Lemma 6 and Corollary 20 yields that all disks are packed.

Lemma 21.
Our algorithm packs all input disks.
Proof. By induction assumption we know that O \ C is saturated and Corollary 20 implies that all rings inside C are also saturated.
Let C be the disk left after removing all rings from C, implying that C is empty. Lemma 6 implies that a final iteration of Boundary Packing to C yields that all remaining disks are packed into C. This concludes the proof.
4.6 Analysis of the Algorithm for the Case 0.495 ≤ r 1 In this section we prove that all disks are packed if 0.495 ≤ r 1 by distinguishing whether 0.495 ≤ r 1 ≤ 1 2 or 1 2 < r 1 . If 0.495 ≤ r 1 ≤ 1 2 , we apply a similar approach as used for the case r 1 ≤ 0.495. The additional difficulty for the case of 0.495 ≤ r 1 ≤ 1 2 is that the cone induced by r 1 may have a density of 1 2 . Thus, we have to generate some extra potential from the remaining sectors in order to ensure that the gaps of the rings are saturated, see Section 7 for details.
Lemma 22. If 0.495 ≤ r 1 ≤ 1 2 , our algorithm packs all disks into the container disk. If 1 2 < r 1 , we need to refine our analysis because the midpoint of the container disk C lies inside r 1 . In particular, we consider a half disk H lying inside C such that H and r 1 are touching each other. The volume of H is at least twice the volume of the remaining disks to be packed, see Figure 17. Finally, applying a similar approach as used in the case of 0.495 ≤ r 1 ≤ 1 2 to H yields that all disks are packed, see Section 8 for details. n i=2 |r i | r 1 D H Figure 17: The total volume of the remaining disks to be packed is smaller than the volume of the white disk D. As |H| = 2|D|, it suffices to guarantee that H is saturated.
Lemma 23. If 1 2 < r 1 , our algorithm packs all disks into the original container disk. Lemma 23 concludes the proof of Theorem 1.

Hardness
It is straightforward to see that the hardness proof for packing disks into a square can be adapted to packing disks into a disk, as follows.
Definition 24. It is NP-hard to decide whether a given set of disks fits into a circular container.
The proof is completely analogous to the one by Demaine, Fekete, and Lang in 2010 [2], who used a reduction from 3-Partition. Their proof constructs a disk instance which first forces some symmetrical free "pockets" in the resulting disk packing. The instance's remaining disks can then be packed into these pockets if and only if the related 3-Partition instance has a solution. Similar to their construction, we construct a symmetric triangular pocket by using a set of three identical disks of radius 3 that can only be packed into a unit disk by touching each other. Analogous to [2], this is further subdivided into a sufficiently large set of identical pockets. The remaining disks encode a 3-Partition instance that can be solved if and only if the disks can be partitioned into triples of disks that fit into these pockets. Figure 18: Elements of the hardness proof: (1) A symmetric triangular pocket from [2], allowing three disks with centers p i1 , p i2 , p i3 to be packed if and only if the sum of the three corresponding numbers from the 3-Partition instance is small enough.
(2) Creating a symmetric triangular pocket in the center by packing three disks of radius √ 3 2+ √ 3 and the adapted argument from [2] for creating a sufficiently large set of symmetric triangular pockets.

Details of the Analysis of Ring Packing
Lemma 10. Let Z = r k , . . . , r be a zipper of length at least two and P a path in the adjacency graph of Z connecting r k with r . Each edge e i ∈ P has a density of at least ρ.
Proof. In order to prove the lemma, we apply interval arithmetic. In interval arithmetic, mathematical operations such as addition, multiplication or computing the sine are performed on intervals instead of real numbers. Operations on intervals are defined based on their real counterparts as follows. For two intervals A = [a 1 , b 1 ], B = [a 2 , b 2 ] and some binary operation •, the result A • B is defined as In other words, the result of an operation is the smallest interval containing all values x • y for x ∈ A, y ∈ B. Unary operations are defined analogously. If the input interval(s) contain values for which the corresponding operation on real numbers is undefined, the result is undefined. In order to use interval arithmetic for our proof, we consider the cases T1-T8 as depicted in Figure 12 separately. For each of these cases, we consider the following 3-4 variables. The first variable is λ, the inner radius of the ring; we assume the outer radius to be 1. Additionally, we have 2-3 variables r 1 ≥ r 2 ≥ r 3 corresponding to the radii of the disks involved in the case. For each of the cases, it is straightforward to implement an algorithm that computes the density of any configuration T1-T8, given some real values for λ, r 1 , . . . , r 3 . Such an algorithm needs to perform basic arithmetic operations as well as square root and inverse sine computations. Instead of implementing such an algorithm using real numbers, we can also implement it using interval arithmetic. As input, instead of concrete real values, we are given intervals I λ , I 1 , I 2 , I 3 for λ and r 1 , r 2 , r 3 . As output, we compute an interval I d for the density of any given configuration from T1-T8. We know that I d contains all possible density values that an implementation using real numbers can produce given inputs from I λ , I 1 , I 2 , I 3 . Therefore, if the lower bound of I d is above a lower bound b d := 0.5642, we know that the density is at least b d for all possible values these intervals.
Furthermore, we can bound our variables as follows. We only have to consider the case 1 2 ≤ λ < 1. For any given value of λ, we know that r 1 ≤ 1−λ 2 , because otherwise, r 1 would not fit into the ring. Moreover, we can lower-bound r 2 by 1−λ−2r1 2 , because otherwise, r 2 would be the first disk in a new ring; similar statements hold for r 3 in the three-disk cases. This gives us lower and upper bounds for all involved variables. By subdividing the ranges for λ, r 1 , r 2 , r 3 into sufficiently small intervals, we subdivide the space spanned by λ, r 1 , r 2 , r 3 into finitely many hypercuboids; these hypercuboids cover the entire space.
We can feed each hypercuboid into the interval arithmetic implementation of each of the configurations T1-T8. If, for a hypercuboid, the result is a density interval with lower bound of at least b d , we do not have to consider that hypercuboid anymore. Implementing this idea yields an automatic prover 1 which we can use to prove that the density is at least b d for all hypercuboids with λ ≤ 0.99.
The number of hypercuboids that we have to consider in this process is large; therefore, we implemented the approach outlined above using a CUDA-capable GPU in order to perform the computations for individual hypercuboids in a massively parallel fashion. Our implementation of interval arithmetic handles rounding errors arising from the use of limited-precision floating-point arithmetic by using appropriate rounding modes (where available) or error bounds guaranteed by the underlying platform. In this way, we can ensure that the interval resulting from any operation contains all possible results of the corresponding operation on real numbers given values from the input intervals. This ensures soundness of our results in the presence of rounding errors.
Let R := R[r out , r in ] be the ring into which Z is packed. Our prover shows that the density of e i is 0.5642, if the ratio of R is at most 0.99. Hence, we assume w.l.o.g. that the ratio of r in and r out is at least 0.99. Furthermore, we assume w.l.o.g. that R has a width of 0.01.
Before we lower bound the density of e i , we need to define some notations. The midpoint of a ring R is the midpoint of the disk induced by the outer boundary. Let q be a point in R and q the ray starting from the center m of the container disk and shooting into the direction of q, see Figure 19. Let q be the intersection point of p with the outer boundary of R. Given a ray , called reference axis, the first coordinate of q is the distance between q and q. The second coordinate of q is the length of the curve β on the outer boundary between and q .
We scale R and the disks' radii so that the reference axes match. In particular, we denote the sector of e i by B. Let (r j , r m ) =: e i be the edge with r m = r m , r j := r j packed by Ring Packing into a ring R := R[1, 0.99] and B the sector of e i such that e i and e i are of the same type. We construct from B ⊂ R[1, 0.99] a sector A ⊂ R such that A is a superset of the sector B of e i . We guarantee |A| |B| ≤ 1.00503 implying that B has a density of at least 0.5642 1.00503 > 0.56137 > ρ because |B| has a density of at least 0.5642.  Let e i be of type T1, see Figure 20(a). W.l.o.g., we assume that r m touches the inner boundary of R. Let be the ray shooting from the midpoint of R into the direction of r m . We scale and place R, r j , r m such that ∩ R is equal to ∩ R, see Figure 20 (Left). Thus, both R and R have the width 1 100 . We use as reference axis for both rings R and R. We map each point from the sector of e i onto the point in R having the same coordinates, see Figure 20(b). Let m m , m j be the midpoints of r m , r j . By construction, m m is mapped onto itself. Furthermore, m j is mapped onto a point that lies farther away from m m as m j does, because m j lies closer to the outer boundary as m m in the initial configuration.
Let A be the union of all points from R onto which points from the sector of e i are mapped, see the blue sector in Figure 20 < 1.00503. The same approach as used for edges of type T1 applies to edges of type T2. In order to analyze edges of type T3 and T4, we need a refined approach. We maintain the first coordinate of q as the distance between q and q and refine the second coordinate as follows: W.l.o.g., let r m be the disk touching the inner boundary of R. Let be the ray shooting from the midpoint of R into the direction of m m , see Figure 21. Let C 1 , C 2 be the circles having the same midpoint as R such that r m , r j touch C 1 , C 2 from the interior. Let α 1 ⊂ C 1 , α 2 ⊂ C 2 be the circular arcs lying on the boundary of B. The second coordinate of q is the sum of the lengths of the parts of α 1 , α 2 between q and , see the fat red curves in Figure 21.
Using the refined definition of coordinates, we apply the approach used for edges of type T1 and T2 to that part of B that lies below . Furthermore, we apply the symmetric approach reflected at to that part of B that lies above . The same argument as used for edges of type T1 and T2 implies that the distance between m j , m m is not decreased.
In order to upper bound the volume |A| of A, we partition B into three sectors S 1 , S 2 , S 3 , see Figure 21(b). S 1 is that part of B which lies above . S 2 that part of B which lies above the upper tangent to r m and below . S 3 is B \S 1 ∪S 3 . We consider the width d of the pocket left by B, see Figure 21(b). Furthermore, let A 1 , A 2 , A 3 be the images of S 1 , S 2 , S 3 under mapping points from R onto points from R. The volumes |A 1 |, |A 2 |, |A 3 | of A 1 , A 2 , A 3 achieve their suprema for r in approaching 1. Hence, we upper bound |A 1 | by α1 2π 2π 1−d 100 , where α 1 is the angle induced by S 1 , see Figure 21 Thus, we upper bound |A1| |S1| by Using the same approach as used to upper bound |A1| |S1| , yields |A2| |S2| < 1.00503. Using the same approach as used for edges of type T1 we obtain |A3| |S3| ≤ 1.00503. This implies |A| |B| ≤ 1.00503 If e i = (r j , r m ) of type T5, we assume w.l.o.g. that the disk r p packed between r j and r m lies adjacent to (a) q q α 1

S3
S 2 mapping points on points having the same coordinates Figure 21: The coordinates of q are the distance between q and q and the sum of the lengths of the parts of α 1 , α 2 that lie between and q . the inner boundary of R. Otherwise, the area of the sector of e i is monotonically decreasing in the ratio of R implying that the sector of e i has a density of at least 0.5642. Let m p be the midpoint of r p and the ray shooting from the midpoint of R into the direction of the m p . We apply the same approach as used edges of T1 to that part of B which lies above and the symmetric approach to that part of B which lies below . This yields a lower bound of 0.56137 for the density of e i .
If e i is of type T6, applying the same approach as used for edges of type T5 yields 0.56137 as a lower bound for the density of e i .
If e i is of type T7 or of type T8, applying the same approach as used for edges of type T3 yields that the density of e i is lower-bounded by 0.56137.
This concludes the proof. In this section, we show that our algorithm packs all disks if 0.495 ≤ r 1 ≤ 1 2 . Let R 1 , . . . , R h be the maximal rings ordered decreasingly w.r.t. their outer radii. As R 1 , . . . , R h are maximal, R 1 , . . . , R h are also ordered decreasingly w.r.t. their widths, because our algorithm processes the disks r 1 , . . . , r n in decreasing order. The inner radius of R i is equal to the outer radius of R i+1 for i = 1, . . . , h.
We distinguish whether there is a maximal ring with inner radius smaller than 1 2 or not. Lemma 25. If all inner radii of maximal rings are larger than 1 2 , all disks are packed.
Proof. Lemma 27 implies that the center of the smallest disk inside each minimal ring R min that lies inside R 1 , . . . , R h lies above the upper tangent of r 1 . Thus, Lemma 10 implies that all rings of R 1 , . . . , R h are saturated. A final application of Lemma 6 implies that all disks are packed.
Hence, we assume w.l.o.g. that there is a maximal ring with inner radius smaller than 1 2 . Let R m be the maximal ring with outer radius r˙m larger and inner radius not larger than 3 4 . First, we show that we can move a potential of 1 4 arcsin 1 3 r 2 m from R 1 , . . . , R m to potential function ∆ while guaranteeing that R 1 , . . . , R m is saturated, see Corollary 30. We distinguish whether m = 1 or m > 1, see Lemma 26 and Lemma 29.
For the remainder of Section 4.6, each disk r i packed by Boundary Packing in Phase 1 pays its entire volume to the cone induced by r i .
Let r m be the inner radius of R m .
Lemma 26. Let 0.495 ≤ r 1 ≤ 1 2 and m = 1. We can move a potential of 1 4 arcsin 1 3 r 2 m from R 1 to potential function ∆ while guaranteeing that R 1 is saturated. Figure 22: The case in which the largest maximal ring has a width at least as large as 1 4 .
Proof. Let C be the cone induced by r 1 , see Fig. 22. Lemma 5 implies that C is saturated. W.l.o.g., we assume r 1 = 0.495 and that C has a density of 1 2 . In the following, we consider three sectors S 1 , S 2 , S 3 ⊂ R 1 . We prove that the potentials of S 1 , S 2 , S 3 can be reduced by certain potentials (denoted by δ 1 , δ 2 , δ 3 ) while still ensuring that a density of 1 2 for R 1 . We iteratively remove δ 1 , δ 2 , δ 3 from S 1 , S 2 , S 3 and pay it to ∆.
As we want to lower bound the potential that we can remove from R 1 while maintaining that R 1 is saturated, we upper bound the sum of the gaps of all minimal rings inside R 1 . Thus, we assume w.l.o.g. that R 1 is minimal, because this does not increase the sum of the gaps inside R 1 . Lemma 16 implies that the gap of R 1 is at most 1.07024U R1 .
• Construction of S 1 , δ 1 : Lemma 28 implies that there is a disk r k packed into R 1 touching the inner and the outer boundary of R 1 , see Fig. 22(a). Let α be the angle of the cone induced by r k . Lemma 9 implies that the part S 1 of R 1 that lies between the two tangents of r k has a density of at least 0.77036. We remove a potential of δ 1 := (0.77036 − ρ) |S 1 |= 0.20936|S 1 |= 0.20936U R1 from S 1 and pay it to ∆. This implies that the density of S 1 is equal to ρ and that we have saved a potential enough for achieving a density of ρ for a sector of volume 0.20936 • Construction of S 2 , δ 2 : Lemma 27 implies that the midpoint of the last disk r packed into R 1 lies above the upper tangent t u of r 1 , see Fig. 22(a). Combining Lemma 10 and Lemma 5 implies that the part S 2 of R 1 that lies above the lower tangent of r 1 and below the center ray c of r has a density of ρ, see Fig. 22(a). The angle of the cone C induced by r 1 is upper bounded by π, because r 1 ≤ 1 2 . This implies that the angle between the upper tangent and the lower tangent of r 1 in counterclockwise order is lower bounded by π, see Fig. 22(a). Hence, the volume of S 2 is lower bounded by As S 2 has a density of ρ, we move a potential of ρ − 1 2 |S 2 | > ρ − 1 2 4.6222U R1 > 0.28033U R1 =: δ 2 from S 2 to ∆ while ensuring that S 2 is saturated and thus R 1 as well. The value of ∆ is at least as large as the potential needed to achieve a density of ρ for a sector of volume ( 0.28033 ρ + 0.37319)|S 1 | > ( 1 2 + 0.37319)|S 1 | = (1 − 0.12681)|S 1 |. • Construction of S 3 , δ 3 : Let S 3 be the sector defined as that part of C that is covered by sectors of the unique 2 zipper inside R 1 , see Fig. 22(b). We move the sum δ 3 of the potentials payed by disks of the zipper to S 3 to ∆. Lemma 5 implies that removing δ 3 from S 3 still ensures that C is saturated.
• Lower-bounding ∆ := δ 1 + δ 2 + δ 3 : We lower bound the value of ∆ in terms of that part A of R 1 that lies between the lower tangent t u of r 1 and the lid 1 of R 1 , see the blue sector in Fig. 22(b). In particular, we lower bound the volume V ∆ of an arbitrary sector such that ∆ V∆ ≥ ρ. Lemma 16 implies that the gap of R 1 has a volume of at most 1.07024U R1 , implying Recall that C is the cone induced by r 1 = 0.495. Furthermore, we consider the intersection point c = (c.x, c.y) of the boundary of r 1 and the inner boundary of R 1 , where c.x, c.y are the coordinates of c, see Fig. 22(b). As c lies on the boundary of r 1 , we have c.x − 1 2 2 + c.y 2 = 1 4 , which is equivalent to c.y 2 = c.x − c.x 2 . Let m be the center of the container disk. Thus, |mc|= √ c.x, implying that the angle β between the center ray of r 1 and 1 is arccos ( √ c.x).
The first-order derivative of f 1 (c.x) is monotonically decreasing, and the first-order derivative of f 2 (c.x) is monotonically increasing on c.x ∈ [ 1 4 , 0.5625]. Furthermore, we have which together with the monotonicity of the derivatives means that f 1 attains its minimum and f 2 attains its maximum on c.x ∈ 1 4 , 0.5625 at either c.x = 1 4 or c.x = 0.5625. Therefore, we find that This means that moving the potentials δ 1 , δ 2 , δ 3 from S 1 , S 2 , S 3 to ∆ yields ∆ ≥ 1 4 arcsin 1 3 r m while maintaining that S 1 , S 2 , S 3 are saturated, implying that R 1 is saturated.
This concludes the proof.
In the proof of Lemma 26, we require that there is a disk packed into R i for each i = 1, . . . , m, see Lemma 28. In order to prove this, we need the following technical auxiliary lemma.
Lemma 27. Let r 1 ≥ 0.495 placed adjacent to C. The largest disk r whose midpoint can be placed on a tangent t of r 1 such that r 1 , r do not overlap has a radius of at least 1 4 , see Fig. 23. Proof. W.l.o.g., we assume r 1 = 0.495, because this does not increase the area between t and r 1 . Let m 1 be the midpoint of r 1 , c 1 the orthogonal projection of m 1 onto t, and c 2 the intersection point of t with the boundary of C, see Fig. 23. Pythagoras' Theorem implies |mc 1 |= √ 0.505 2 − 0.495 2 = 1 10 , which yields |c 1 c 2 |= 9 10 . Assume |c 2 m 2 | = 1 4 . Another application of Pythagoras' Theorem implies that |m 1 m 2 | is equal to √ 0.495 2 + 0.65 2 ≈ 0.81702 > 0.505 + 1 4 = |m 1 m 2 |. This concludes the proof. The pocket below r 1 is large enough to ensure that there is at least one disk packed into R 1 allowing the following lemma.
Lemma 28. For each i = 1, . . . , m, there is a disk r k packed into R i .
Proof. W.l.o.g., we assume i = 1. Assume there is no disk packed into R 1 , i.e., there is a disk r k < 1 4 that did not fit into R 1 . This implies that all previously packed disks r 1 , . . . , r k−1 have radii lower bounded by 1 4 . Thus, r 1 , . . . , r k−1 are packed by Boundary Packing in Phase 1 adjacent to the container disk. Lemma 5 implies that the cones induced by r 2 , . . . , r k−1 have densities lower bounded by ρ, because r 2 ≤ 0.495. As the cone induced by r 1 has an angle of at most π, the union M of the cones induced by r 1 , . . . , r k has a density of ρ. As r k < 1 4 does not fit between r k−1 and r 1 , the angle between the upper tangents of r k−1 and r 1 is smaller than arcsin r k 1−r k < arcsin 1 3 . Hence, the angle of M is larger than π − arcsin 1 3 . Thus, the potential payed to ∆ is lower bounded by π − arcsin 1 3 This implies that the entire container disk is saturated, which implies that the total volume of r 1 , . . . , r n is larger than the half of the container disk. This concludes the proof.
Next, we consider the case m > 1, i.e., there are at least two rings with outer radius not smaller than 1 4 . Recall that r m is the inner radius of R m .
Proof. As the outer radius of R m is at least as large as 3 4 , the widths of all R 1 , . . . , R k are upper bounded by 1 4 . Thus, the union of all rings R 1 , . . . , R m covers the ring R[1, 1 4 ] and lies inside the ring R[1, 1 2 ]. Hence, applying the same approach as used in Lemma 26 implies that we can remove a potential of 1 4 arcsin 1 3 r 2 m from R 1 , . . . , R m while guaranteeing that R 1 , . . . , R m is saturated. This concludes the proof.
Let C ∆ be the cone with apex at m, angular radius of arcsin 1 3 , and radius r m such that C ∆ touches the upper tangent t 1 of r 1 from below, see Fig. 24 Figure 24: If there is no disk packed into R h , the complete disk r out is saturated.
Combining Lemma 26 and Lemma 29 yields the following.
Corollary 30. We can move a potential of 1 4 arcsin 1 3 r 2 m from R 1 , . . . , R m to potential function ∆ while guaranteeing that R 1 , . . . , R m are saturated.
Corollary 30 implies that we can add a potential of 1 4 arcsin 1 3 r 2 m to C ∆ . This yields that C ∆ is saturated, allowing us to show that all the remaining maximal rings R m+1 , . . . , R h are also saturated.
Proof. The proof is by induction. Assume that the rings R m+1 , . . . , R h−1 are saturated. Let r out , r in be the outer and inner radius of R h . W.l.o.g., we assume r out = 1.
First we show that there is a disk packed into R h . From this we deduce that R h is saturated.
• For the sake of contradiction, assume there is no disk packed into R h . This means that the disk r crash that did not fit into R h , is responsible for the construction of R h . Thus, all disks packed previously adjacent to r out have radii at least as large as 1 2 . Hence, the sector A of r out between the upper tangent t 1 of r 1 and the upper tangent t 2 of the disk placed last adjacent to r out (see the white cone in Fig. 24(a)) is smaller than the cone induced by r crash , see the red cone in Fig. 24(a). Lemma 5 implies r cash < 0.2019r out . Otherwise, the total volume of r 1 , . . . , r n would be larger than π 2 , because the red cone would be saturated in case of r cash ≥ 0.2019. This is a contradiction.
Let C 2 be the cone with apex at m, an angle of 2 arcsin 0.2019 0.7981 − arcsin 1 3 , and radius r out such that C 2 touches C ∆ from below, see Fig. 24(b). Furthermore, let S be that part of R h that lies above the lower tangent of r 1 and below t 2 , see the red cone in Fig. 24(c). As r 2 , r 3 , ... ≤ 0.495, Lemma 5 implies that S has a density of at least ρ. As r 1 ≤ 1 2 , the cone induced by r 1 has an angle of at most π. Furthermore, the angle of A is upper bounded by 2 arcsin As the angle of A is upper bounded by 2 arcsin 0.2019 0.7019 , which is smaller than the sum of the angles of C 1 and C 2 , we obtain that S has a density larger than 1 2 . By induction the remaining part of the entire packing container is saturated, so we conclude that the total input volume is larger than half of the container volume, which is a contradiction. Figure 25: Guaranteeing that the ring R h is saturated by upper bounding the volume of the sectors E, F .
• Lemma 16 implies that the part G of the gap of R h that lies not inside the cone induced by r 1 has a volume of at most 1.07024U R h . In the following, we construct three sectors S 1 , S 2 , S 3 and move certain potentials δ 1 , δ 2 , δ 3 from S 1 , S 2 , S 3 to potential function ∆. Finally, we show that after moving ∆ to G yields that G is saturated.
-Construction of S 1 , δ 1 : As there is a disk packed into R h , there is a disk r k touching the inner and the outer boundary of R h , see Fig. 25. Let S 1 be the sector of R h between the lower and the upper tangent of r k , see the red sector in Fig. 25. Lemma 9 implies that S 1 has a density of at least 0.77036. Thus, we move a potential of 0.77036 − 1 2 |S 1 | = 0.27036U R h from S 1 to ∆, which still ensures that S 1 is saturated.
-Construction of S 2 , δ 2 : Let S 2 be the part of R h that lies between the lower and the upper tangent of r 1 and which is covered by sectors of disks already packed by disk or Ring Packing, see the red sector in Fig. 25. Corollary 12 implies that S 2 as a density of ρ. As the angle of the cone induced by r 1 is upper bounded by π, we obtain |S 2 | ≥ π π π 1 − (1 − r in ) which is lower bounded by 3.55196U R h , because r in ≤ 1 2 . Thus, we move a potential of δ 2 := ρ − 1 2 3.55196U R h > 0.21542U R h from S 2 to ∆. This yields that S 2 is still saturated.
-Construction of S 3 , δ: Let S 3 be the intersection of C ∆ and R h . By construction of C ∆ , see above Corollary 30, we can move a potential of U R h 4 from S 3 to ∆, while ensuring that R h \ G is saturated.
-Lower-bounding ∆: By the construction of δ 1 , δ 2 , δ 3 , we have ∆ = δ 1 + δ 2 + δ 3 which is lowerbounded by 0.27036 + 0.21542 + 1 4 U R h = 0.73578U R h , which is enough to saturate a sector of volume 1.47156U R h . As the volume of G is upper bounded by 1.07024U R h , moving ∆ to G saturates G and thus the entire ring R h . This concludes the proof.
Combining Lemmas 29 and 31 implies that all rings are saturated. 8 Details of the Analysis for the Case 1 2 < r 1 In this section we show that our algorithm packs all disks if 1 2 < r 1 . In particular, we reduce the case 1 2 < r 1 to the case r 1 = 1 2 . Then an application of the same approach as used for the case 0.495 ≤ r 1 ≤ 1 2 implies that all disks from the input are packed by our algorithm.
We start with some technical definitions. A half disk H is that part of a disk D that lies not to the right of the vertical diameter of D. The midpoint, the radius, and the vertical diameter of H are the midpoint, the radius, and the vertical diameter of D.
Let D be the disk with volume π(1 − 1r 1 ) 2 inside C such that D and r 1 do not overlap, see Fig. 26. Furthermore, let H by the half disk with radius 1 − 1r 1 and its diameter crossing orthogonally the touching point between D and r 1 , see the white half disk in Fig. 26.  Figure 26: The total volume of the remaining disks to be packed is equal to the white disk D. As |H|= 2|D|, it suffices to guarantee that H is saturated.
For the remainder of this section, w.l.o.g., we scale our entire configuration such that D has a fixed radius of 1 2 , implying that C has a radius of 1 1−r1 and r 1 a new radius of r1 1−r1 , see Fig. 26.
By Lemma 3 we are allowed to assume w.l.o.g. that the total volume of r 2 , . . . , r n is π(1 − r 1 ) 2 . The volume of H is at least twice the volume of D, i.e., twice the volume of the remaining disks to be packed. By assumption, O \ C is saturated. As the total input volume is half of the volume of O, C \ H is saturated.
First, we consider the case that there is no ring created by our algorithm.
Lemma 33. If there is no ring created by our algorithm, all input disks are packed by Boundary Packing.
Proof. Let r i = r 1 be an arbitrary disk, packed by Boundary Packing and let m i be its midpoint. Furthermore, let m be the midpoint of H, see Fig. 27. Figure 27: In case of r 1 > 1 2 , a disk r i packed by Boundary Packing pays its entire potential to that part of H that lies between its two tangents 1 , 2 .
Let 1 , 2 be the two rays starting in m and touching r i . Furthermore, let S be that part of H that lies between 1 , 2 , see the red bounded sector in Fig. 27. r i pays its entire potential to S. By moving the midpoint m i of r i into the direction of m while maintaining the radius of r i , the area of S increases while the volume of r i stays the same. Lemma 5 implies that S has a density of at least ρ. Finally, applying the same approach as used in the proof of Lemma 6 implies that all disks are packed.
Thus, we assume w.l.o.g. that there are rings created by our algorithm. Let R 1 , . . . , R h be the maximal rings ordered decreasingly w.r.t. their outer radii. As R 1 , . . . , R h are maximal, R 1 , . . . , R h are also ordered decreasingly w.r.t. their widths, because our algorithm processes the disks r 1 , . . . , r n in decreasing order.
Lemma 34. If the inner radius of R h is smaller than 1 2 , all input disks are packed by our approach. Proof. We use the potential assignments used in the proof of Lemma 33 and apply the same approach as used in the proof of Lemma 25. This concludes the proof.
Hence, we assume w.l.o.g. that the inner radius of R h is smaller than 1 2 . Let R 1 , . . . , R m be all maximal rings such that the outer radius of R m is not smaller and the inner radius of R m is smaller than 3 4 . As R 1 , . . . , R m are ordered decreasingly w.r.t. their widths, each ring of R 1 , . . . , R m has an inner radius not smaller than 1 2 . Lemma 35 implies that each ring R 1 , . . . , R m contains at least one disk because by assumption r 2 , r 3 , . . . ≤ 1 2 . Lemma 35. Consider a ring R with an inner radius of r 1 . Let be vertical diameter of C.
The largest disk r that can be packed on the same side of as the midpoint of r 1 has a radius of 1 2 , see Figure 28: If r 1 = r in ≥ 1 2 , the disk with diameter equal to the width of the ring R exactly fits into each of the two gray pockets, i.e., each disk with larger diameter does not fit into a gray pocket.
Proof. Let m 1 be the midpoint of r 1 . The width of R is 1 2 . Note, that after scaling as described above the width remains 1 2 , see Figure 29. Thus, a disk r := 1 2 inside R touches both the inner and the outer boundary component of R. We place the midpoint of r on the bisector between m and m 1 . Thus, r is touching the boundary of r, because r touches the inner boundary component of R. Finally, |mm 1 |= 1 − r implies that the midpoint of r has a distance of 1−r 2 to . This concludes the proof.
Corollary 36. For each i = 1, . . . , m, there is a disk r k packed into R i , see Fig. 28 (Right).
Note that we assumed w.l.o.g. that C has a radius of 1 1−r1 . We consider the rings R 1 , . . . , R m lying inside the container corresponding to the case r 1 = 1 2 such that R i , R i have the same width for i = 1, . . . , m, see Fig. 29. Let L i , L i be that parts of R i , R i that lie below the horizontal diameters of the container disks and below the lids of R i , R i , see the red sectors in Fig. 29. Figure 29: Mapping the rings R 1 , . . . , R m onto R 1 , . . . R m . The volume of R i is smaller than the volume of R i .
In the following, we show that the volume |L i | of L i is not larger than the volume |L i | of L i . Thus, we need a tool for measuring the volumes of L i , L i . Let w i be the width of R i , R i . Let r in be the inner radius if R i . Furthermore, let C i , C i be the circles with midpoint m and radius r in + wi 2 corresponding to the cases r 1 > 1 2 and r 1 = 1 2 . Analogously, let c i c i be the circles with midpoint m and radius r in for r 1 > 1 2 and r 1 = 1 2 . Furthermore, let γ i , γ i , µ i , µ i be those parts of C i , C i , c i , c i that lie inside L i , L i , see Fig. 30. Finally, let r 1 , r 1 the circles presenting the inner circle of r 1 for r 1 > 1 2 and r 1 = 1 2 . Figure 30: The volumes of L i and L i are w i · |γ i | and w i · |γ i |.
Lemma 37. The volumes of L i , and L i are w i · |γ i | and w i · |γ i |.
Lemma 38. The volume of L i is not larger than the volume of L i .
Proof. As L i , L i have the same width, Lemma 37 implies that we have to show that γ i is not longer than γ i . For simplified calculations, we move C, r 1 , µ i , γ i by r 1 − 1 2 to the left, see the transition illustrated in Fig. 31. This does not change the lengths of the circular arcs γ i , but now all C i , c i , C i , c i , γ i , γ i , µ i , µ i have the same midpoint m and both versions of r 1 for r 1 > 1 2 and r 1 = 1 2 have the same midpoint m 1 , see Fig. 31 (Right). Let a be the intersection point between µ i and r 1 , see Fig. 32(a). Let δ be the difference between the radii of c i and r 1 . Furthermore, let b be the point within a distance of δ to m 1 such that m 1 lies in the interior of the segment between a and b. Let B(m, b) be the bisector between m and b. Furthermore, let d be the intersection point between µ i and r 1 and the line induced by m 1 and d, see Fig. 32 lies closer to d as c, see zoom (1) in Fig. 32(a), implying that d lies on the same side of B(m, b) as b, see zoom (2) in Fig. 32(a). Hence, we assume w.l.o.g. that µ i ends on B(m, b). The angle induced by m, a in d is upper bounded by π 6 , because the distance between m, d is at least as large as the distance between m, b. This implies that the length of that part β of mu i that lies on the same side of B(m, b) as b, see the blue curve in Fig. 32(b), is upper bounded by sin( π 6 ) cos( π 6 ) δ ≤ 0.57736δ.
Let α be the left of the two angles between the horizontal diameter of C and the segment between m and d. We have α ≥ π 2 , because b lies above the horizontal diameter of C and to the right of m. We also denote by µ i , µ i the radii of µ i , µ i . Thus, the length of the circular arc µ i is α 2π · 2πµ i = αµ i + αδ ≥ αµ i + π 2 δ. This implies that the length of γ i is lower bounded by αµ i + π 2 δ ζ β Figure 33: The length of the curve ζ is at most twice the length of the curve β, because the radius of γ i is at most twice the radius of µ i .
Let d be the ray shooting from m into the direction of d, see Fig. 33. This means the lid of L i lies on d . Let ζ be that part of γ i that lies on the same side of d as a. As the radius of C i is at most twice the radius of c i , the length of ζ is at most twice the length of β. This implies that the length of ζ is upper bounded by 1.15472δ.
As α ≥ π 2 , γ i is at least as large as π 2 δ plus the length of γ i \ ζ. Thus, we obtain that γ i is not smaller than γ i , because ζ is smaller than π 2 δ. This concludes the proof.
Let C ∆ be the cone inside H with apex at m, angular radius of arcsin 1 3 , and radius r m such that C ∆ touches the vertical diameter of H, see Fig. 34. Figure 34: The potential that we can remove from R 1 , . . . , R m is large enough to saturate a cone C ∆ inside H with apex at m, angular radius of arcsin 1 3 , and radius r m such that C ∆ touches the vertical diameter of H.
Combining Corollary 30 and Lemma 38 implies that we can move a potential of at least 1 4 arcsin 1 3 r 2 m from R 1 , . . . , R m to C ∆ while guaranteeing that R 1 , . . . , R m are saturated. From this we deduce that the same approach as used in Lemma 31 implies that the maximal remaining rings are also saturated, implying that all maximal rings are saturated. As each ring is a subset of a maximal ring, we obtain the following.
Corollary 39. All rings are saturated.
Let m be the vertical line touching r 1 from the left and H m that part of the disk container that lies not inside any ring, see Fig. 35. Lemma 23. If 1 2 < r 1 , our algorithm packs all disks into the original container disk.

Conclusions
We have established the critical density for packing disks into a disk, based on a number of advanced techniques that are more involved than the ones used for packing squares into a square or disks into a square. Numerous questions remain, in particular the critical density for packing disks of bounded size into a disk or the critical density of packing squares into a disk. These remain for future work; we are optimistic that some of our techniques will be useful.