n = 12 open ★=

79432000≤s(12)≤4

The best packing known for 12 squares, side 4,
3.9714
345
3.4644.464
nn+1

Proven

3.971500≤s(12)≤4

  • new result
  • exact

Citation record n-012

lowersquarepacker after Daniel, Levy 2026, GitHub (confirmed T-095)

Open

  • optimality

Bounds

Best known packing

4

Construction
grid
Tilt angles
0∘
Source
[Kingbird]
Evidence
E-kingbird-upper-register
Verified upper bound

4

The reported value, verified here.

Evidence
E-basic-grid-upper
Reported lower bound

79432000

Proved by
squarepacker (Ryu Sungjoon) 2026
Kind
counting
Scope
Unrestricted independent rotations with disjoint interiors; boundary contact allowed.
Note
squarepacker/s12-lower-bound v1.1 (5 October 2026) states s(12)≥7943/2000 = 3.9715 from Evan Daniel's 1,736 points dilated to the container 7943/2000 and rounded one D4 orbit at a time, with new weights found by linear programming after this project's Route B, total weight 11.9974808, checked at the angle net N=96000 by Daniel's Rust verifier with overflow checks and by the author's own indep_check.cpp; both refuse it at N=24000, which a pass at one net does not need. Reported on jlevy/squares#363 and archived on Zenodo.
Source
[squarepacker s12 2026-10-05]
Evidence
E-n012-squarepacker-7943-2000-report
Verified lower bound

79432000

The reported value, verified here.

Evidence
E-n012-squarepacker-7943-2000-source-replay, E-n012-squarepacker-7943-2000-native-parent-core
Gap

572000= 0.0285

Verified upper minus verified lower.

Results in the register

Verification

upper: replayed here; lower: replayed here, audited here

—

Rigidity

not rigid, numerically checked, numerical multiprecision

Evidence: E-translation-escape-not-rigid

Scope

Square 8 of the retained witness (witness id 9) translates 1 along (0, 1) with the packing still valid, so the configuration admits a non-trivial feasible motion; 4 of its 12 squares do. Every constraint is exactly affine in the slide parameter, so the arithmetic carries no linearization error, but the coordinates are the witness's own finite-precision transcription: this settles the retained configuration, not the true optimum. Rigidity and optimality are independent, and this bears only on the former.

s(12) — open, with a verified 3.9715 lower bound

The trivial 4×4 grid gives s(12)≤4, and no retained verified construction improves it. The exact value remains open; this record does not assign a probability to the conjecture s(12)=4. The verified lower bound is s(12)≥7943/2000=3.9715 (T-095), squarepacker’s (Ryu Sungjoon’s) release v1.1 of s12-lower-bound, published on 5 October 2026: Evan Daniel’s 1,736 points below, dilated to the container 7943/2000 and rounded to the grid 1/4000000 one symmetry orbit at a time, with new weights found by linear programming after this project’s Route B, all 223 orbits positive, total 119974808/107<12. It leaves the case open by 57/2000=0.0285 against its conjectured optimum. Its README credits the points, the verifier and the reduction to Daniel and the re-weighting idea to this project, and says the re-weighting, the verification runs and its tools were prepared with the help of Claude (Anthropic).

Daniel’s verifier, built from the retained source with overflow checks on, accepts it over all 39,765 bins of the net N=96000, least captured weight 10000050/107 at bin 0, in a replay here on 5 October that printed every line of the source’s log (E-n012-squarepacker-7943-2000-source-replay); squarepacker’s own tools/indep_check.cpp accepts it at N=96000 and 192000 with the same minimum. The source stopped its weight search when a range-restricted copy of indep_check found no violation, so those runs are the producer’s evidence, and the decisive second check is this repository’s parent-core interval route, which shares no code with either and certified all 39,765 rows (E-n012-squarepacker-7943-2000-native-parent-core). All three refuse the source’s two altered certificates. The nets N=24000 and 48000 refuse the certificate, which a pass at one net does not need. The review, prompted separately and blind to the replay, re-derives the argument and finds no blocking defect; it ran no computation of its own.

Until 5 October the verified lower bound was 15680000/3949423=3.9702002 (T-079), this project’s re-weighting of the same points, which v1.1 follows: Daniel’s points scaled by 3951000/3949423, with new weights found by linear programming over their D4 orbits, total 14970347/1250000<12 (certificate and receipts). Daniel’s verifier, built unmodified with overflow checks on, accepts it over all 39,765 bins of the net N=96000, least captured weight 10000045/107 at bin 0, in the producing run and again by a review lane that did not produce it (E-n012-levy-15680000-3949423-source-replay). Because the weights were fitted against the cells that verifier reports, the decisive second check was this repository’s parent-core interval route, which certified all 39,765 rows (E-n012-levy-15680000-3949423-native-parent-core). Both refuse two mutated certificates, and the review accepts the bound with no blocking finding. It stays true as stated.

Until 3 October the verified lower bound was 31360/7901=3.9691178 (T-078), squarepacker’s (Ryu Sungjoon’s) s12-lower-bound, published on 2 October 2026: Evan Daniel’s weighted certificate below with every coordinate and the container multiplied by 7902/7901 and the weights unchanged. Its README credits the certificate and the verifier to Daniel, and says the rescaling, the verification runs and its own checker were prepared with the help of an AI assistant from Anthropic.

The rescaled certificate is refused by the angle nets N=6000 and 12000 and accepted at N=24000, least captured weight 10000056/107 at bin 0; a pass at any one net is a complete check, so the refusals are not counterexamples. That pass was replayed here on 2 October by Daniel’s verifier and by squarepacker’s own tools/indep_check.cpp (E-n012-squarepacker-31360-7901-source-replay), and this repository’s parent-core interval route decided all 9,942 rows of the finer net completely (E-n012-squarepacker-31360-7901-native-parent-core), which gives the strict s(12)>31360/7901. All three refuse two mutated certificates. The one retained review was written by the lane that ran the replays, its finding F1, so it is that lane’s own read and not a separately prompted one.

Until 3 October the verified lower bound was Evan Daniel’s 15680/3951=3.9686155, from evand/square-packing, which builds on Sam Burns’s and Gustavo Massaccesi’s weighted exact-rational covering method; its CREDITS.md says the work was produced by Claude (Anthropic) in a single session under human direction. Its certificate entered the source on 2026-08-25, but this record first saw it on 2026-09-27.

The certificate is 1,736 rationally weighted points in [0,15680/3951]2, total weight 11.9738036<12, such that every closed unit square in the container, at every angle, captures weight at least 1. The source’s Rust verifier decides that over a rational angle net at N=6000, shrinking each bin’s square by 1/(cosδ+sinδ); the least captured weight is 10000056/107. That verifier was replayed here from the retained bytes at N=6000, reproducing that minimum at the same bin, and the source’s independently written exact Python re-check was run on a sample of its bins (E-n012-evand-15680-3951-source-replay). A review of 27 September found the bound sound as stated. This repository’s own parent-core interval route then decided the same certificate completely: all 2,486 angle rows, read as parent-core rows with parent side 1, certify at one unit by directed-rounding branch and bound over centre boxes, with no stalled box (E-n012-evand-15680-3951-native-parent-core). That decision shares nothing with the source’s arrangement sweep, so that bound stood at V3/C3 on two machine methods; both rest on the source’s certificate and the same counting theorem, and the reader that maps its file onto the rows has not yet had a review reading of its own. The method is Burns’s and Massaccesi’s, as this repository’s own ladder below is; what is new is the instance.

The current strategy treats n=12 as Route N: high exact-value upside but lower readiness than the selected n=11 Route A. A new block becomes competitive only after it states one uniform boundary-capacity or deformation lemma over a nontrivial 4−ε interval and includes the flexible side-four boundary strata. See the post-W5 route selection.

Before 2026-09-27 the verified bound was this repository’s own 99/25=3.96 (T-017), the first bound proved about twelve squares rather than inherited from s(11). It remains valid and is kept with its ladder: 2,097 weighted atoms on a D4-symmetric grid, total mass 149987/12500, every placement of a shrunken square covering mass at least 12501/12500, and seven earlier rungs, 19/5 through 79/20, reached by the same instrument. Condition 5 is decided twice from its bytes, by the exact event-cell sweep and by a method-distinct interval branch and bound. Before that the case had only 3.788854, Stromquist’s s(11) bound carried here by monotonicity.

Why 12 is harder to prove than 13, which is already solved

This inverts the usual intuition and is the single most useful fact about this case. s(13)=4 was proved by Bentz in 2010. Since twelve squares are easier to pack than thirteen, proving s(12)=4 is a strictly stronger statement: a lower-bound argument must exclude packings of n squares, and excluding twelve from a side-4 container rules out strictly more configurations than excluding thirteen. The unavoidable-point method’s difficulty scales with how few squares must be excluded.

So the open region does not begin and end at 11. It begins at 11 and continues at 12, and 12 is the case where the existing technique comes closest to reaching.

The conjectured optimum is an integer, which sidesteps the specific obstruction at n=11: no high-degree algebraic threshold needs certifying, only the integer 4. Every rigorous technique in the literature certifies thresholds built from unit distances and container coordinates, and an integer target is exactly what they handle. Combined with a container of modest size, n=12 is the most plausible place for the first new proved value of s(n) since 2018.

A caution against assuming the answer

Secondary summaries sometimes assert s(12)=4 on the ground that “12 squares fit in a 4×4 arrangement” — which establishes only s(12)≤4. And plausible patterns in this subject fail late: the conjecture s(n2−n)=n survived in print to n=17, where Cleemann packed 272 unit squares into a side-17 square with room to spare — and the retained catalogue has since pushed the boundary to m=11: Hajba (2015) at m=16, Arslanov (2019) at m=12, and Cantrell (February 2025) at n=110, whose retained witness (n-110) sits at side 10.9968. An unbeaten grid is evidence, not proof.

Verification Code

The programs behind this case’s verified bounds, by their evidence. The code column says how the code that ran stands to the code its producer used. VERIFIERS.md says what each program is and whose it is.

bound evidence run code programs
verified lower E-n012-squarepacker-7943-2000-source-replay replayed here producer’s code V-evand-angle-net-verify, V-squarepacker-indep-check-cpp (external)
verified lower E-n012-squarepacker-7943-2000-native-parent-core audited here independent V-sqpack-parent-core-native (first-party)
verified upper E-basic-grid-upper replayed here independent V-check-basic-bounds (first-party)