The Cell Decomposition
The Cell Decomposition
The result the refiner rests on, stated so it can be checked.
Setup
Fix unit squares. A configuration is
- a centre and an angle for each square , and
- the container side ,
so real coordinates in all, which is 34 at .
The four corners of square are where is rotation by . Write for the four corner offsets, . Once is fixed the are constants, and every corner is an affine function of the centre alone.
Two squares have disjoint interiors exactly when some line separates them, and for convex polygons it suffices to test lines parallel to their edges. A square has two distinct edge normals (opposite edges are parallel), so a pair has four candidate axes; these too are functions of the angles alone.
Define a cell of the configuration space to be a choice, for each of the pairs, of one candidate axis together with an order (which square lies on the low side). A configuration lies in a cell when that axis genuinely separates that pair in that order.
Statement
T-2. Fix the angle vector and fix a cell . Then
minimise s subject to the configuration lies in cell C and inside [0, s]²is a linear program in the variables .
Why
Four observations, each immediate once the angles are fixed.
- Corners are affine in the centres. Corner of square is with constant.
- Containment is linear. Each corner must satisfy and . Note that appears here, and only here, as a variable.
- Separation along a fixed axis is linear. For axis and order
(i before j), separation says every corner of projects at or before every corner of : for all . Since is a constant vector, each is a linear inequality in four of the variables. - The objective is linear, being itself.
The nonlinearity of the original problem is entirely in two places: the trigonometric dependence of and on the angles, and the discrete choice of cell. Neither is present once both are fixed.
Note what the statement does not claim. The LP optimises within one cell. A different cell may have a lower optimum, and finding the best cell is the combinatorial part of the problem, which none of this makes easy.
A cell is not a basin, and this trap has been walked into
The statement above fixes the angles and a cell. A point-basin does not: it is the preimage of a quench endpoint, and the quench moves the angles and may cross cells. So a configuration can sit at exactly its fixed-angle cell optimum and still be far from its quench endpoint, with every remaining unit of gap in the angles and none of it in the centres.
Nor does a point-basin classify a flat terminal component
The section above separates a fixed-angle cell solve from the full quench. There is a second separation, discovered later and the harder of the two: the quench returns a point, while the terminal optimum need not be isolated.
Where the optimum is flat, two quenches into the same connected terminal component can legitimately stop at different places in it. Every symptom then mimics a real discovery—distinct coordinates, distinct geometric keys, two rows in the atlas—while the side agrees exactly and an open stratum can share one contact graph. Neither the key nor that graph alone decides component identity; wall strata can change inside the same connected family. That is D-034, and the shape of the error is the same as the cell/basin trap: an object that fixes more than the mathematics does, mistaken for the mathematics.
The consequence is a reading that looks safe and is not: a fixed-angle solve that stops improving has not converged to a local optimum of the problem—it has run out of things it is allowed to move. Watching it flatten and concluding “wrong basin” is exactly backwards, and it is what the right basin looks like when the residual is angular.
That is not hypothetical. Checking exp-001’s polish/exploration split, an agent built a probe doing one LP solve at fixed angles, called it “the quench”, and retracted a correct finding when it stalled (D-029). On exp-002’s seed 2:
| gap to | |
|---|---|
| annealer output, as found | |
| fixed-angle solve, carried to its cell fixed point | —no improvement at all |
quench_bracket, with the angle half |
“Quench” names all three stages—solve the cell, re-read the cell to a fixed point,
refine the angles. The cell solve alone is one third of it and answers a different
question. devtools.check_regressions pins this discrimination under D-029.
Two implementations, on purpose
The row count depends on how separation is written, and this directory now has both forms:
| Implementation | Separation rows per pair | Total rows at |
|---|---|---|
sqpack.research.quench |
1, from projected half-extents | small |
cases.trump11.independent_lp_cell |
16, one per ordered corner pair | 1,056 = 16 × (11 + 55) |
Both are correct formulations of the same feasible set, and neither shares constraint-assembly code with the other. That redundancy is deliberate, and it is the postmortem’s rule R1: a component checked against its own model of correctness is checked against the thing most likely to be wrong. D-014 happened precisely because the quench was validated only against its own constraint rows.
The instance: Trump’s cell
cases.trump11.independent_lp_cell reads the cell off sqpack’s exact
certificate—eleven angles and fifty-five axis choices, and nothing else—rebuilds the LP
from scratch, and solves it.
The centres are never given to the solver. They are what it must reconstruct.
The cell, read off the exact certificate
distinct angles: [0.0, 40.18193729] deg
tilted squares: [6, 7, 8, 9, 10]
axis choices: 55 pairs
LP shape: 23 variables, 1056 constraints (= 16 x (11 + 55))
Solving it, without telling the solver where the squares go
LP optimum s = 3.8770835900228136
exact value s = 3.8770835900228140
|difference| = 4.441e-16
worst centre error = 1.332e-15
sqpack.quench’s single-cell solve at the same angles agrees to the digit—4.441e-16,
recorded as a mechanism result of
exp-006.
The cell containing Trump’s packing, solved as a linear program, is Trump’s packing,
through two unrelated constraint sets.
What “exact” does and does not mean here
The formulation is exact; the build is not, and conflating the two caused a critical defect. Three corrections, recorded in the plan spec’s revision note:
- A float LP solver does not deliver the cell optimum. At its default primal feasibility tolerance of HiGHS returned a packing violating its own separation constraint by , and so a side below Trump’s (D-014). Pinned at the solver’s floor of , and with every returned solution post-checked against the constraints imposed on it, the residual in the side is about . That floor is D-021, still open, and eight rounds sit on it.
- The polish step does not produce exact output. R-2 said it produced rational output; HiGHS returns floats. Exact output needs an exact LP over the cell’s certified rational or algebraic coefficients, which is unbuilt and tracked.
- A finite-precision LP endpoint remains a numerical result. Earlier records called
this precision stage
polished; that local label was retired because it says neither which arithmetic ran nor what precision was achieved. The method isnumerical-f64, its actual tolerance and residual must be recorded, and it is only numerically checked. Formal promotion requires a separate exact or rigorous certificate thatsqpackcan replay.
Thirty-four dimensions become one
Trump’s packing uses two distinct angles: on six squares and on five. Holding the cell fixed and varying the single free angle gives a function
φ(a) = the LP optimum of Trump's cell with the five tilted squares at angle a
which is the entire problem, restricted to this cell, in one variable.
| (deg) | ||
|---|---|---|
| 39.000000 | 3.880706142326 | |
| 39.500000 | 3.879169268857 | |
| 40.000000 | 3.877638844995 | |
| 40.100000 | 3.877333546175 | |
| 40.181937 | 3.877083590023 | ← Trump |
| 40.300000 | 3.877877577363 | |
| 40.500000 | 3.879235737993 | |
| 41.000000 | 3.882703521786 | |
| 42.000000 | 3.889950463054 |
A 2,001-point scan of puts the minimum at , one grid step () from .
Trump’s angle is not an input to this computation. It is the argument that minimises a one-dimensional function anyone can plot. For this structured cell, the centre coordinates remain LP variables and only one nonlinear angle parameter remains. This demonstrates a useful compression, not a theorem that angle-class count equals the local dimension of the full packing problem; other records already use more classes, and each reduction must be derived from its contact structure.