
The Apollonian gasket
Three mutually tangent circles leave two circles tangent to all three, one in each of the two curvilinear triangles they bound. Draw both, and every new triple of tangent circles repeats the move; the circles multiply forever, their total area exhausts the region they started in, and what is left over, a set of measure zero, is the Apollonian gasket. This page identifies that gasket with an object the tree already keeps. The Farey stack is a moire on the line whose bright nodes are the reduced fractions, each lit floor(Q/b) times at depth Q for a node of denominator b; the circles of one particular integral packing rest on the line exactly at those nodes, one circle to a fraction, the circle over a/b carrying curvature 2 b^2. The stack is the packing's shadow.
The generator is lab/rs/apollonian, which grows a packing from its root quadruple in exact integers and checks Descartes on every quadruple it makes. The Apollonian demo grows the packing and lays the stack under it, and the Farey sequence page builds the stack the circles shadow.
It is not the other gasket
The tree already has a gasket, and the two share a name and nothing else. This tree's gasket is the design of code 7 at base 2: the attractor of three maps x -> (x + c)/2, one ratio, three pieces, dimension log 3/log 2 = 1.584962500721... exactly, a closed form in one line. The Apollonian gasket is the limit set of the Apollonian group, generated by the four inversions in the dual circles, each of them the circle through the three tangency points of the other three of a mutually tangent quadruple: the maps are Mobius, not similarities, they carry no single ratio, the pieces meet at tangency points where the derivative is 1, and no closed form for its dimension is known. The two objects do not even have the same kind of dimension: one is a ratio of logarithms of integers, the other is not known to be any closed form at all. Proved for the design, where the maps are similarities of ratio 1/2 satisfying the open set condition, and Verified for the gasket against the literature below, where every published value is a computation and the best of them is an interval.
Descartes
Four mutually tangent circles with curvatures k_1, k_2, k_3, k_4, a curvature being the reciprocal of the radius and negative for a circle containing the other three, satisfy (k_1 + k_2 + k_3 + k_4)^2 = 2 (k_1^2 + k_2^2 + k_3^2 + k_4^2). Read as a quadratic in k_4 its two roots are k_1 + k_2 + k_3 +- 2 sqrt(k_1 k_2 + k_2 k_3 + k_3 k_1), the two circles that fit in the two triangles, and they sum to 2(k_1 + k_2 + k_3). So the second circle is got from the first with no square root at all, by the reflection k_4' = 2(k_1 + k_2 + k_3) - k_4. Proved, by Vieta on that quadratic. An integer root quadruple therefore makes every curvature in the packing an integer, and the whole growth is integer arithmetic.
The reflection moves the positions too, and it moves them by the same rule. Write a circle of curvature k centred at (x, y) as the integer triple (k, k x, k y), and a line as k = 0 with (k x, k y) its outward unit normal. The reflection acts on all three coordinates at once, v' = 2(v_1 + v_2 + v_3) - v, and six exact integer identities hold on every quadruple it makes. Proved: they hold on the two root quadruples by hand and the reflection preserves them, so the runs below, which recheck all six on every one of their 575969269 quadruples with 0 failures, test the integer arithmetic and not the algebra. With B(u, v) = (sum u_i)(sum v_i) - 2 sum u_i v_i on the four columns of the quadruple, the six are B(k, k) = B(k, kx) = B(k, ky) = B(kx, ky) = 0 and B(kx, kx) = B(ky, ky) = -4. The first is Descartes; the rest are the position half of the same theorem, and all six survive the reflection because the reflection lies in the orthogonal group of B. The reflection is the Apollonian group in coordinates: inversion in the dual circle fixes the other three and sends the fourth to its reflection. On the strip root the dual circle of the line y = 0 passes through (0, 1), (1, 1) and (1/2, 1/2), so it is centred (1/2, 1) of radius 1/2, and inversion in it sends y = 0 to the circle of centre (1/2, 7/8) and radius 1/8, which is 2(v_1 + v_2 + v_3) - v = (8, 4, 7) exactly.
The strip packing
The root quadruple (0, 0, 2, 2) is two lines and two circles: the lines y = 0 and y = 1, and the circles of diameter 1 centred at (0, 1/2) and (1, 1/2). Descartes reads (0 + 0 + 2 + 2)^2 = 16 = 2(0 + 0 + 4 + 4). In coordinates the four are (0, 0, -1), (0, 0, 1), (2, 0, 1) and (2, 2, 1), and the packing they generate is periodic in x with period 1. The literature's strip packing is the primitive root (0, 0, 1, 1), the same picture at twice the scale: the reflection is linear, so the packing grown here is that packing with every curvature doubled, and every statement about its curvatures reads here through that factor of 2 (Haag, Kertzer, Rickards and Stange 2024 call (0, 0, 1, 1) the strip packing and (-1, 2, 2, 3) the bug-eye packing, and those two, one of them doubled, are the two packings this page grows). Proved: reflecting (2, 0, 1) in the other three gives (2, 4, 1), the circle at x = 2, so the swapped quadruple is the two lines with the circles at x = 1 and x = 2, which is the root translated by one; a packing is generated by any of its quadruples, so the translation by one carries the packing onto itself. The circle moves by two, the quadruple by one.
The coordinates read tangency to a line straight off the integers. A circle of positive curvature in the strip packing is tangent to y = 0 exactly when k y = 1, and to y = 1 exactly when k y = k - 1. Proved: the centre height of a circle tangent to y = 0 from above is its radius, so y = 1/k. No geometry is needed to sort the packing into the circles that touch a line and the circles that do not. Both statements need the positive curvature, and the two lines are excluded by hand: y = 1 is (0, 0, 1), which passes the near test k y = 1 without resting on y = 0, and y = 0 is (0, 0, -1), which passes the far test k y = k - 1 in the same way.
The Ford circles
In the strip packing the circles tangent to the line y = 0 are exactly the Ford circles: for every reduced a/b, with no interval assumed, the circle of curvature 2 b^2 centred at (a/b, 1/(2 b^2)), resting on the line at a/b, and nothing else. Proved. The packing fills the whole strip, so a/b runs over every rational; one period carries the reduced a/b of [0, 1). Every one of them is the image of the strip's far line y = 1 under an element of SL(2, Z), so the Ford circles are one closed horocycle of the modular surface, ## The horocycle.
The base of the induction is the root: a/b = 0/1 and 1/1 are the two circles of curvature 2 = 2 * 1^2. The step is Descartes with a line in the quadruple. Given two line-tangent circles of curvatures 2 b^2 and 2 d^2 tangent to each other, the quadruple (0, 2 b^2, 2 d^2, k) forces k^2 - 2 S k + 4 (b^2 - d^2)^2 = 0 with S = 2(b^2 + d^2), whose discriminant is 4 S^2 - 16 (b^2 - d^2)^2 = 64 b^2 d^2, a square. The two roots are 2 (b + d)^2 and 2 (b - d)^2: the Ford circle over the mediant (a + c)/(b + d) and the one over the Stern-Brocot parent (a - c)/(b - d), which at the base b = d = 1 is the line y = 1 of curvature 0. So the reflection carries the parent to the mediant, exactly, in integers.
Tangency is the Farey condition, and it is an identity rather than an estimate. For the circles over a/b and c/d the squared centre distance minus (r_1 + r_2)^2 is (a/b - c/d)^2 - 4 r_1 r_2 = ((a d - b c)^2 - 1)/(b^2 d^2). Two Ford circles are tangent when (a d - b c)^2 = 1 and have disjoint closures otherwise; they never overlap. Proved, from that one line. Two Farey neighbours therefore carry tangent circles, their mediant is reduced, and each of the two new pairs is again a neighbour pair, so the Stern-Brocot tree rooted at (0/1, 1/1) reaches every reduced fraction of (0, 1) exactly once and the reflection tracks it. Translating by the period carries those circles to every other reduced a/b, and a translation leaves b and so the curvature 2 b^2 alone.
The converse closes the word "exactly". Let C be any circle of the packing tangent to y = 0 at p, of radius r. C and the Ford circle over a/b fail to be disjoint precisely when abs(p - a/b) < sqrt(2 r)/b. If p is irrational, Dirichlet gives infinitely many a/b with abs(p - a/b) < 1/b^2, and every one of them with b > 1/sqrt(2 r) then overlaps C; circles of a packing have disjoint interiors, so p is rational. Write p = a/b reduced. Two circles tangent to the line at one point are nested, so C and the Ford circle over a/b are equal or one contains the other, and only equality is allowed. Proved.
The lab checks the identification in both directions and in exact integers. Walking the Stern-Brocot tree to denominator 4000 makes 4863601 mediants against sum_{b <= 4000} phi(b) - 1 = 4863601, with the reflection returning (k, k x, k y) = (2 r^2, 2 p r, 1) at the mediant p/r every time, no broken quadruple and no non-tangent parent pair. Growing the packing itself on one period to curvature 2097152 makes 20770674 circles, of which 318963 have k y = 1; every one of them is a Ford circle, and 318963 is sum_{b <= 1024} phi(b) - 1. Verified (lab/rs/apollonian, verbs ford and strip), and the same count comes back at Q = 32 and Q = 181, 323 and 10059. Distinctness of the grown circles is controlled at T = 2048, where 2448 circles are 2448 distinct; past that the count is the generator's, which is sound because each swap strictly raises the curvature.
The stack is the shadow
The Farey stack lights the node a/b exactly floor(Q/b) times at depth Q. Under the Ford identification the stack is the packing's shadow on the line: a node is lit floor(Q sqrt(2/k)) times, where k = 2 b^2 is the curvature of the one circle of the strip packing resting on it, and the nodes lit at depth Q are exactly the tangency points of the line-tangent circles of curvature at most 2 Q^2. Proved, by composing the brightness law with the identification, and Verified: at Q = 1024 the packing offers 318963 line-tangent circles of curvature at most 2 Q^2 on one period against the stack's sum_{b <= Q} phi(b) - 1 nodes in (0, 1), the node 0/1 sitting on the period's edge.
The total brightness is a closed form and it is the same on both sides. Summing floor(Q/b) over the nodes of the half-open period [0, 1) gives Q(Q + 1)/2. Proved: the sum is sum_{b <= Q} phi(b) floor(Q/b) = sum_{n <= Q} sum_{b | n} phi(b) = sum_{n <= Q} n. Verified at Q = 50, 200, 1000, 4000: 1275, 20100, 500500, 8002000. The Stern-Brocot walk covers (0, 1) and gives Q(Q + 1)/2 - Q; the node 0/1, of denominator 1 and brightness Q, closes the period and the sum.
The horocycle
A horocycle of the upper half-plane is a Euclidean circle tangent to the real line, or a horizontal line, and a Mobius map of SL(2, Z) carries horocycles to horocycles. Every Ford circle is the image of the line Im z = 1 under an element of SL(2, Z), and every such image with b >= 1 is a Ford circle: for gamma in SL(2, Z) with bottom row (b, d), b >= 1, Im(gamma z) = Im z/abs(b z + d)^2, so on z = x + i the height 1/((b x + d)^2 + b^2) is at most 1/b^2, with equality at x = -d/b; the image is a circle through gamma(infinity) = a/b tangent to the line there, its diameter is 1/b^2, so it is the circle of centre (a/b, 1/(2 b^2)) and radius 1/(2 b^2), the Ford circle of ## The Ford circles; and every reduced a/b is the first column of such a gamma. Proved. On the modular surface SL(2, Z) \ H the Ford circles are therefore one closed curve, the closed horocycle at height 1, and the strip packing's far line y = 1 is that horocycle lifted to the plane: the line and the line-tangent circles of ## The Ford circles are one orbit. (Verified exactly in rationals, lab/py/ford-horocycle, verb crossings: 5510 image points on the 1102 Ford circles of b <= 60 land on the circle over a/b, at height 1/b^2 exactly when x = -d/b.) The threshold is exact. The horizontal horocycle Im z = h meets the closed disc of the Ford circle over a/b exactly when h <= 1/b^2, that is b <= h^(-1/2), tangent at the top point when b = h^(-1/2); so at h = Q^(-2) it meets exactly the Ford circles of the Farey sequence F_Q, touching those of denominator Q at their tops, and at h = 1/(2 Q^2) it meets the circles of F_(floor(Q sqrt 2)), not those of F_Q. Proved, the disc over a/b being 0 <= y <= 1/b^2 on the vertical through its centre. (Verified, same verb: closed-disc counts 1, 2, 4, 32, 324, 542 at Q = 1, 2, 3, 10, 32, 42 against sum_(b <= Q) phi(b), open-disc counts 0, 1, 2, 28, 308, 530 against sum_(b < Q) phi(b), and 1, 2, 6, 64, 628, 1086 at h = 1/(2 Q^2) against sum_(b <= floor(Q sqrt 2)) phi(b).)
The stack reads the crossings. The Farey stack has lit m(Q) = sum_(b <= Q) phi(b) distinct nodes of [0, 1) by depth Q, phi(n) of them for the first time at depth n, the novelty of ## The novelty meter on the stack page. m(Q) is the number of Ford circles of one period that the horocycle at height Q^(-2) meets, phi(n) is the number it reaches for the first time as it descends from (n - 1)^(-2) to n^(-2), n >= 2, the brightness floor(Q/b) of the node a/b at depth Q is the number of the Q horocycles at heights (j/Q)^2, 1 <= j <= Q, that meet the disc over a/b, and the total brightness Q(Q + 1)/2 of ## The stack is the shadow is sum_(j <= Q) m(floor(Q/j)), the crossings of those Q horocycles added up. Proved: j b <= Q is b <= ((j/Q)^2)^(-1/2), the threshold at h = (j/Q)^2, and sum_b phi(b) floor(Q/b) = sum_j sum_(b <= Q/j) phi(b). The stack's depth is a height, its node set is one horocycle's crossings and its brightness is a stack of Q horocycles' crossings. (Verified, verb census: the Stern-Brocot walk with no run bound reads sum_(b <= Q) phi(b) at every Q = 2^j to 2^10, 318964 at the top.)
The bridge. Let f be smooth with compact support in (0, infinity) and psi_f(z) = sum f(Im(gamma z)) over the cosets Gamma_infinity \ SL(2, Z), a finite sum at every z and a smooth function of compact support on the modular surface, an incomplete Eisenstein series. Its integral over the closed horocycle at a height h below the support of f unfolds to the stack's smoothed novelty: int_0^1 psi_f(x + i h) dx = h sum_(c >= 1) phi(c) g(c h^(1/2)) with g(t) = int_R f(1/(t^2 (1 + v^2))) dv, a finite sum, and it is (3/pi) int f(w) w^(-2) dw + O(h^(1/2) log^2 h), the main term being (3/pi) int psi_f dmu, the surface having area pi/3. Proved: the cosets are the coprime bottom rows (c, d), c = 0 contributes f(h) = 0, the d coprime to c >= 1 fall into phi(c) classes mod c, over one class c x + d runs once over the line as x runs over [0, 1) and d over the class, so the class contributes (1/c) int_R f(h/(w^2 + c^2 h^2)) dw, which w = c h v turns into h g(c h^(1/2)). The limit is partial summation: g(t) = (1/t) int f(w) w^(-3/2) (1 - t^2 w)^(-1/2) dw over t^2 w < 1, so g vanishes once t^2 clears the support of f, at t = 1 for the bumps on [1, 2], is C^1 below, and g'(t) = O(t^(-2)); with y = h^(1/2), sum_c phi(c) g(c y) = -y int_0^(1/y) Phi(x) g'(x y) dx for Phi(x) = sum_(c <= x) phi(c) = 3 x^2/pi^2 + R(x), the boundary terms vanishing at both ends; the 3 x^2/pi^2 part is (6/pi^2) y^(-2) int t g(t) dt after t = x y and one more integration by parts, which the substitution w = 1/(t^2 (1 + v^2)) and int_R dv/(1 + v^2) = pi turn into (3/pi) y^(-2) int f(w) w^(-2) dw; and R(x) = O(x log x) for x >= 2, Mertens 1874, with R(x) = O(x^2) below, puts the rest at O(y^(-1) log^2 y); multiplying by h = y^2 gives the claim. In the words of the stack page this is m_q(g), Verjovsky's totient measure of g, at q = h: the horocycle's height is the q of the novelty meter, the stack's y^2. (Verified, verb bridge: the horocycle integral by quadrature coset by coset against h sum phi(c) g(c h^(1/2)) agrees to 7.7e-14 or better at h = 4^(-k), k = 2..10, on the C^infinity and the C^2 bump of lab/py/smoothed-novelty, 318453 cosets contributing at k = 10; there E/h^(3/4) stays between -0.27 and +0.46, read and not claimed.) Under the Mellin transform the two sides carry one Dirichlet series. The Mellin transform int_0^infinity C(h) h^(s - 2) dh of the horocycle integral C(h) of psi_f is F(s - 1) + phi(s) F(-s) with F(s) = int f(y) y^(s - 1) dy and phi(s) = xi(2s - 1)/xi(2s), xi(s) = pi^(-s/2) Gamma(s/2) zeta(s), and the novelty series zeta(s - 1)/zeta(s) of the stack page is phi(s/2) stripped of its gamma factor pi^(1/2) Gamma((s - 1)/2)/Gamma(s/2). Proved, by unfolding psi_f against the Eisenstein series E(z, s), whose constant term is y^s + phi(s) y^(1 - s), and on the totient side by int_0^infinity g(t) t^(2s - 1) dt = (pi^(1/2)/2) (Gamma(s - 1/2)/Gamma(s)) F(-s), the same substitution; g is not of compact support, g(t) = C/t + O(1) near 0 with C = int f(w) w^(-3/2) dw, and in the variable of that display the tail puts a pole at s = 1/2, the s = 1 of the stack's series, cancelled by the zero of 1/zeta(2s) there; phi is regular at 1/2 with phi(1/2) = -1, since xi(s) = xi(1 - s) gives phi(s) = xi(2 - 2s)/xi(2s) and the two residues of xi at 1 cancel with a sign. The poles of phi(s) in 0 < Re s < 1/2 are the zeros of zeta halved, each sending h^(1 - rho/2) into C(h), and Re(1 - rho/2) = 3/4 exactly when rho is on the line. So the theorem the novelty meter reads and the theorem the horocycle reads are one. Zagier 1981, read at source, pp. 279-280, writes the horocycle C_y = Gamma_infinity \ (R + iy) as "a closed curve of (hyperbolic) length 1/y", proves length(C_y cap U)/length(C_y) = vol(U)/vol(Gamma \ H) + O(y^(1/2 - eps)) for open U, and states that if the error can be replaced by O(y^(3/4 - eps)) for all U then the Riemann hypothesis is true; for F twice differentiable the same Mellin argument would give C(F; y) = kappa + O(y^(1 - Theta/2 - eps)) with Theta the supremum of the real parts of the zeros and kappa = (3/pi) int F, which is 3/4 - eps under the hypothesis. Its one tool is the Rankin-Selberg identity I(F; s) = int F E(z, s) for the Mellin transform of the constant term, whose poles in the strip are the zeros of zeta(2s); no spectral decomposition and no cusp form appears in it, and none is needed, a cusp form having zero constant term by definition and so contributing nothing to any closed horocycle integral. Sarnak 1981 carries the generalisation to every nonuniform lattice and is unread at source; Drutu and Peyerimhoff 2020, read at source, restate it as: for f in C^1_c of the surface the horocycle average is the area average plus y^(1 - s_1) mu_1(f) + ... + y^(1 - s_k) mu_k(f) + o(y^(1/2)), with 1 > s_1 > ... > s_k > 1/2 the poles of the determinant of the matrix relating the Eisenstein series at s and at 1 - s, and attribute the equivalence with the hypothesis on the modular surface to Zagier. The stack side is Verjovsky's Theorem B, read at source on the stack page: the hypothesis holds if and only if m_q(f) = m_0(f) + o(q^(3/4 - eps)) for every f in C_c^r, r >= 2, and every eps. At q = h both theorems say that phi(s) has no pole in 1/4 < Re s < 1. The bridge runs one way: every closed horocycle integral of an incomplete Eisenstein series is a smoothed novelty sum, of g_f and not of an arbitrary bump, since the Mellin transform of g_f carries the factor Gamma(s - 1/2)/Gamma(s), and a positive bump f_0 on [1, 2] is never a g_f, the transform F(-s) of the f it would need having the pole of Gamma(s) at s = 0 against int f_0(u)/u du > 0. What the two sides share is the series, and the stack's meter reads the scattering coefficient of the modular surface through it.
The E_2 sub-packing. Let A = {1, ..., m} and call a Ford circle an E_A circle when one of the two continued fraction expansions of its tangency point a/b has every partial quotient in A; on the expansion [0; a_1, ..., a_n] with a_n >= 2 that reads a_1, ..., a_(n-1) <= m and a_n <= m + 1, the other expansion being [0; a_1, ..., a_n - 1, 1], and 0/1, with no quotient, is in. Their tangency points close up to the E_A circles' rationals together with the E_A of beneath, ## The question mark, a limit of E_A rationals having E_A quotients or being such a rational, so the closure has the dimension dim_H E_A of that page, delta_2 = 0.5312805062772051416 at m = 2 and delta_3 = 0.705660908028 at m = 3. (Proved.) The Stern-Brocot path from 1/1 to [0; a_1, ..., a_n] is L^(a_1) R^(a_2) L^(a_3) ... X^(a_n - 1), so the two children of a node are [0; a_1, ..., a_n + 1], one more step in the direction of the last run, the mediant with the older of its two neighbours, and [0; a_1, ..., a_n - 1, 2], a turn, the mediant with the younger neighbour, its parent. The E_A circles are closed under the mediant with the younger neighbour, and closed under the mediant with the older neighbour exactly when a_n <= m, the last run of the path being shorter than m; so they are the subtree of the Stern-Brocot tree of (0, 1) whose paths have every run of length at most m, closed under parents, with F_(d + 1) nodes at depth d, the path length from 1/1, when m = 2, F_1 = F_2 = 1, the compositions of d into parts 1 and 2. Proved, and Verified at b <= 512 (lab/py/ford-horocycle, verb census): the walk, the two-expansion test and the rule agree on 961 fractions at m = 2 and 5118 at m = 3, the mediant with the younger neighbour stays in 960 of 960 and 5117 of 5117, and the mediant with the older stays in 584 and 4026, exactly the nodes with a_n <= m. The census counts the E_A circles of F_Q in [0, 1), N_m(Q), against Q^(2 delta_m). N_2(2^j) is 1936, 37781, 721365, 13614634, 59104562 at j = 10, 14, 18, 22, 24, and N_2(Q)/Q^(2 delta_2) lies between 1.2272 and 1.2521 on the quarter octaves of [22, 24]; the octave exponent log2(N_2(2Q)/N_2(Q)) oscillates, 1.0431 and 1.0750 at j = 22, 23, off 2 delta_2 = 1.0625610125544 by 0.0195 and 0.0124, and the two-octave exponent log4(N_2(4Q)/N_2(Q)) lies between 1.0590 and 1.0661 from j = 15 to j = 22; the control N_3(2^j) is 13615, 680827, 34078973 at j = 10, 14, 18, N_3(Q)/Q^(2 delta_3) between 0.76762 and 0.76775 on the quarter octaves of [17, 18], with octave exponents 1.4113, 1.4114, 1.4112 at j = 15, 16, 17 against 2 delta_3 = 1.4113218160560. Verified (same verb, 2^24 and 2^18 the boxes, 28 seconds). N_m(Q) grows like Q^(2 delta_m), the count exponent of the E_A circles being twice the dimension of E_A. Conjecture on this page, the census its support: the statement is Hensley's theorem, whose texts, Hensley 1989 and Hensley 1990, sit behind a paywall and are unread here; Hensley 1994, read at source, restates them at p. 44 as the number of fractions with denominator d <= x and partial quotients at most m being asymptotically C_m x^(D(m)) with D(2) ~ 1.06256, and Bourgain and Kontorovich 2014, read at source, restate the 1989 result at Remark 1.13 as #R_A(N) lying between two constant multiples of N^(2 delta_A) for the reduced b/d, 0 < b < d < N, with quotients in a finite A and delta_A the Hausdorff dimension of C_A; the exponent stays at Conjecture on this page because the source is unread. The m = 2 oscillation reads as a subleading term: the octave exponent minus 2 delta_2 is +0.0475, -0.0480, +0.0477, -0.0453, +0.0405, -0.0336, +0.0265, -0.0194, +0.0124 at j = 15 to 23, alternating in sign with a falling amplitude, half the spread of the ratio over an octave falling from 0.05 at j = 9 to 0.011 at j = 23, and the two-octave exponent averages it out; no threshold is drawn, and a rung whose deviation stopped falling would be the thing to look at. In the curvature T = 2 b^2 the three families of this page have three exponents: the packing grows like T^alpha with alpha = 1.3057 the residual dimension of ## The dimension, its Ford circles like T^1 by Mertens's sum_(b <= x) phi(b) ~ 3 x^2/pi^2, and its E_2 circles like T^(delta_2), delta_2 = 0.5313, on the census and the restatements; each exponent is a dimension, the residual set's, the line's and that of E_2, the closure of the E_2 circles' tangency points.
The oscillation is the second zero. Continue L_(A,s) of beneath, ### The two dimensions of a run-length rule, to complex s. A word w over A has abs(phi_w'(0)) = q_w^(-2) for its continuant q_w, so sum_w q_w^(-2s) = ((1 - L_(A,s))^(-1) 1)(0), a series in q^(-2s) whose poles lie among the zeros of det(1 - L_(A,s)); a zero s = sigma + i tau sends Q^(2 sigma) cos(2 tau log Q + c) into a count by denominator, the exponent doubled with the series, a wave of period pi/(tau log 2) in octaves whose amplitude moves by 2^(2(sigma - delta_2)) per octave. At A = {1,2} the zero of largest real part off the axis in 0 <= sigma <= 0.53, 0.2 <= tau <= 80 is s_1 = 0.457015235231 + 6.958882679527 i, one of 33 there, the winding number of the determinant around the box agreeing, moving by at most 8.9e-16 from 40 to 140 collocation modes, the next two being 0.428067039 + 78.156951119 i and 0.412635450 + 71.206868515 i. Its period is 0.6513 octaves and its factor 0.9022 per octave, and 2 tau log 2 = 3 pi + 0.2223, so sampled at integer octaves the wave is a sign alternation under an envelope of period 28 octaves, the census pattern. On 193 points of N_2(Q)/Q^(2 delta_2), sixteen per octave from 2^12 to 2^24, a constant leaves rms 1.64e-2, and the constant plus the wave of s_1, only the constant, amplitude and phase fitted, leaves 7.67e-4, max 4.05e-3, at amplitude 0.1312; the twelve octave exponents minus 2 delta_2 from j = 12 to 23 are reproduced within 0.0034, +0.0475 against +0.0472 at j = 15 and +0.0124 against +0.0127 at j = 23; and sigma, tau fitted freely on the same points read 0.4556, 6.9598. Verified (lab/py/question-mark, verb subleading, 59 seconds, the walk being lab/py/ford-horocycle's). The two-octave period the rungs suggest is an alias of a wave 0.65 octaves long, and the falling amplitude is the envelope times the factor per octave. The control A = {1,2,3} has 67 zeros in 0 <= sigma <= 0.71, 0.2 <= tau <= 80, the winding number agreeing, the largest real part at 0.489705291051 + 45.352143150104 i, 0.2160 below delta_3 against 0.0743 at A = {1,2}, a factor 0.7413 per octave, and its census leaves rms 3.85e-4 to a constant with 3.83e-4 for the wave, which is why N_3 shows no wave at 2^18. A Proved expansion N_2(Q) = C Q^(2 delta_2) + Re(C_1 Q^(2 s_1)) + ... needs the growth of the series in the strip, Hensley's or Mayer's, unread here; that s_1 is the zero of largest real part below delta_2 beyond the box is not claimed.
The zero is certified. D(s) = det(I - L_(A,s)) at A = {1,2} has exactly one zero in the box Re s in [0.457015235230560657361880338944633917910, 0.457015235230560657361880338944633917917], Im s in [6.958882679527224185470967589885884480867, 6.958882679527224185470967589885884480875], and the collocation reading of s_1 above is the box rounded to twelve digits. Proved (computer-assisted, lab/py/periodic-determinant, verb zero, 15 seconds, interval arithmetic throughout). The method is Jenkinson and Pollicott 2018, read at source, carried to complex s. On the Hardy space H^2(D) of an open disc D of centre c and radius r, c - r > -1, with T_a(closed D) inside D for each branch T_a(z) = 1/(z + a), which is h < 1 below, D(s) = 1 + sum_n delta_n(s) with delta_n the coefficients of det(I - z L_s), and delta_n is exact from the periodic points of period at most n: a word a_1 ... a_n adds mu^(-2s)/(1 - (-1)^n mu^(-2)) to the n-th trace, mu the larger root of x^2 - t x + (-1)^n and t the trace of [[0,1],[1,a_1]] ... [[0,1],[1,a_n]], their (1) and (2). Their Lemma 2 bounds abs(delta_n) by the elementary symmetric sums of the approximation numbers, their Proposition 1 and Lemma 3 bound the k-th of those by W h^(k-1)/(1 - h^2)^(1/2), h the contraction ratio of D and W = sum_a sup_D abs(w_a) over the weights, and their Proposition 2 sums this to abs(delta_n) <= K^n h^(n(n+1)/2)/prod_(i <= n) (1 - h^i) with K = W/(h (1 - h^2)^(1/2)). Only their (43) uses that s is real, placing the sup of abs(w_a) on D at z = c - r; the study replaces it by an interval enclosure of the sup on arcs of the circle, by the maximum modulus principle, and on their own disc reproduces their (47), K <= 4.098461 at dim E_2. At s_1 the plain weight (z + a)^(-2s) has modulus abs(z + a)^(-2 sigma) exp(2 tau arg(z + a)), and 2 tau = 13.9 lifts the bound on K to 5123.603 on the same disc, every such bound rounded up from the enclosure on 2000 arcs. Conjugating by g(z) = (z + beta)^(-2s), beta > max(0, r - c), keeps the determinant and turns the weight into ((z + beta)/(beta (z + a) + 1))^(2s), whose two arguments nearly cancel: on their disc the bound on K falls to 6.847291 at s_1 at beta = 9/5, and at dim E_2 to 2.406247 at beta = 33/20 against their 4.098461. Proved: g and 1/g are holomorphic on a neighbourhood of the closed disc, so multiplication by g is bounded and invertible on H^2(D) and g^(-1) L_s g is similar to L_s, with the same eigenvalues and the same Fredholm determinant; its weight is w_a(z) g(T_a z)/g(z), and (z + a)(1/(z + a) + beta) = beta (z + a) + 1 with both factors of positive real part on D, so the principal powers multiply; around a periodic orbit the factors g(T z)/g(z) telescope to 1, as the traces require. With c = 7/10, r = 4/5, beta = 9/5, h = 29/56 and the periods to 18 in 16189 classes of period and trace, K <= 5.73393 on 2000 arcs of the circle bounds the tail by 4.95e-40 at the centre s_0 of the box and the derivative's tail on the box by 5.08e-37, through Cauchy's estimate at radius 0.001; the Krawczyk image s_0 - Y D(s_0) + (1 - Y D'(X))(X - s_0), Y = 1/D_18'(s_0), lies strictly inside the printed box X itself, of half-widths 3.5e-39 and 4.0e-39, which gives a zero in X by Brouwer and its uniqueness, the average of D' along a segment of X lying in the convex box that encloses D'(X). The real axis is the control: the same code puts dim E_2 in [0.5312805062772051416244686473684717854930591089, 0.5312805062772051416244686473684717854930591092], containing the hundred digits of Jenkinson and Pollicott's Theorem 1, and {1,3}, {2,3}, {1,2,3} within 1e-20 of Pollicott and Vytnova 2022 Table 3, read at source (Verified, verb control, 31 seconds). The rate was never the obstruction: Jenkinson and Pollicott 2001, read at source in the preprint, prove abs(s_N - dim E_2) < K theta^(N^2) with K not explicit, and what the certificate adds is the explicit tail. The zeros near tau = 71 and 78 are not certified here.
The census
Curvatures at most T are finite in number, N(T), once the packing is bounded or the strip packing is cut to one period. The lab grows the tree with the reflection, one new circle per node, and counts. N(T) counts what the tree grows, the root quadruple excluded: the four curvatures -1, 2, 2, 3 of the bounded root are not in the table, and neither is the root circle at x = 0 that the half-open period [0, 1) keeps. The convention costs four circles in the bounded column and one in the strip column at every T; every ratio below is read off the counts as printed.
T | strip, one period | (-1, 2, 2, 3) |
|---|---|---|
10^3 | 950 | 3325 |
10^4 | 19298 | 67163 |
10^5 | 390478 | 1359167 |
10^6 | 7899138 | 27463391 |
10^7 | - | 555198593 |
The count grows like a power of T, and the local exponent read as the ratio log(N(T_2)/N(T_1))/log(T_2/T_1) lands at 1.305, the fourth place being the grid's: 1.3057 on the bounded decades, 1.3060 on the strip decades, 1.3056 on the strip octaves. Verified (lab/rs/apollonian, verbs strip and census). On the bounded packing over the decade grid to T = 10^7 the ratios are 1.5185, 1.3043, 1.3053, 1.3061, 1.3055, 1.3057; on the strip packing over the same grid to T = 10^6 they are 1.3802, 1.2965, 1.3078, 1.3061, 1.3060, and over the octave grid to T = 2097152 they are 1.2925, 1.2722, 1.2716, 1.2925, 1.3073, 1.3011, 1.3064, 1.3050, 1.3056. The flat reading log N(T)/log T is a different and much slower number, 1.2492 at T = 10^7 and still climbing, because the constant in front has not been divided out; no digit on this page is fitted, every one is a ratio of two counts and two bounds.
The residues are the arithmetic of the packing, and the census sees them and nothing more: which integers inside those classes occur is a different question, carried below as a citation. The bounded packing (-1, 2, 2, 3) uses exactly the eight residues 2, 3, 6, 11, 14, 15, 18, 23 mod 24, over all 555198593 circles of curvature at most 10^7; the strip packing, which is not primitive, uses the four residues 0, 2, 8, 18, 4144636, 6223160, 6241134 and 4161744 of its 20770674 circles of curvature at most 2097152. Verified, same run. Verified against Haag, Kertzer, Rickards and Stange 2024, Proposition 2.1: the eight are exactly the residue set of their type (8, 11), and the strip's four are the six residues 0, 1, 4, 9, 12, 16 of their type (6, 1), the primitive strip packing's, doubled mod 24.
The dimension
The exponent is the Hausdorff dimension of the residual set, and it is not proved here. The number of circles of curvature at most T in a bounded Apollonian packing is asymptotic to c T^alpha with alpha the residual dimension. Verified against Kontorovich and Oh 2011, whose theorem is stated for any given bounded packing and whose abstract prints alpha ~ 1.30568(8); the census above is a reading of that theorem and not a proof of it. Inside the Ford circles the same reading returns twice, ## The horocycle: counted by curvature 2 b^2 <= T, all of them grow like T^1 and the E_2 circles like T^(delta_2), delta_2 = 0.5313, each exponent a dimension.
The dimension itself is 1.3056867280498771846..., rigorous to 128 places. Verified against Vytnova and Wormell 2024, whose Theorem 1.1 gives dim_H(A) = 1.3056867280 4987718464 5986206851 0408911060 ... +- 10^(-129) by an effective Ruelle-Bowen computation on a Chebyshev-Lagrange approximation of the transfer operator. The same source records the history the census sits on: Boyd 1973's bracket 1.300197 < dim_H < 1.314534 was the first rigorous one and for fifty years the only one, McMullen 1998 reached 1.305688 by an eigenvalue algorithm and it is correct to five places, and Bai and Finch 2018 reached 30 places non-rigorously with an induced transfer operator. The census's bounded reading 1.3057 is alpha correctly rounded to four places, off by 1.3e-5; the strip's 1.3056 and 1.3060 agree to three, off by 8.7e-5 and 3.1e-4. Three places is what the local ratios support and the fourth is the grid's.
The parabolic tangencies are why the closed form is missing. The gasket is the limit set of a Kleinian group, and the generators fix the tangency points with derivative 1, so the transfer operator has no spectral gap in the naive space and the classical dimension algorithms converge slowly: this is the reason McMullen's discretisation was accurate to five places and not more, and the reason the first rigorous bracket stood for fifty years. The tree makes no claim here.
The local-global question
The curvatures lie in six or eight residue classes mod 24 and the question is which integers in those classes actually appear. This one is answered by others and carried here only as a citation. The local-global conjecture, that every sufficiently large integer in one of those classes appears as a curvature, is false in general: Haag, Kertzer, Rickards and Stange 2024 prove that certain quadratic and quartic families are missed, the obstruction coming from quadratic and quartic reciprocity and belonging to the thin Apollonian group rather than to its Zariski closure. Their Corollary 2.6, read at source, is exact about which packings: the conjecture fails for at least one residue class in every primitive packing not of extended type (6, 1, 1, 1) or (8, 11, 1), and the packings where it may yet hold include the strip packing (0, 0, 1, 1) and the bug-eye packing (-1, 2, 2, 3), which are the two packings of this page, the strip one with its curvatures doubled; so for both packings here the question stands open, not refuted. Their Remark 6.1 records the computation on exactly these two: the class 1 mod 24 of (0, 0, 1, 1) misses only the curvature 241 up to 10^10, and the class 2 mod 24 of (-1, 2, 2, 3) misses only 13154. The eight-class census above is this page's only statement in this direction, and it is a count, not a claim about which integers in those classes occur.
No design has this dimension
A design is the attractor of a subset of the base^dim maps x -> (x + c)/base: finitely many similarities, all of one ratio 1/base, satisfying the open set condition, so its dimension is log N/log base for an integer cell count N. The gasket is the attractor of a system of Mobius maps of no common ratio with parabolic fixed points at the tangencies, so its dimension is not forced into that shape and, as far as anything proved goes, is not in it. A design of base at most 100 has the gasket's dimension only if base^alpha is an integer, and none is: the nearest approach over 2 <= base <= 100 is 52^alpha = 174.005426001, then 68^alpha, 89^alpha, 49^alpha, 23^alpha and 20^alpha at gaps 0.008182, 0.011684, 0.015094, 0.022279, 0.026750, and the worst gap is 0.488110 at base 47. Verified (lab/rs/apollonian, verb design), computed from the rigorous alpha above. This is a check and not a theorem: alpha is not known to be irrational, so no finite table can close the question, and the table says only that the two families do not meet inside the window the tree can see. It refutes equality and nothing weaker. The nearest design dimension in the window is log 351/log 89 = 1.305694144, off alpha by 7.4 * 10^-6, with log 247/log 68 = 1.305694579 next at 7.9 * 10^-6: a design can come this close and still not be the gasket.