n = 20 open ★=

981200≤s(20)≤5

The best packing known for 20 squares, side 5,
4.9055
456
4.4725.472
nn+1

Proven

4.905000≤s(20)≤5

  • new result
  • exact

Citation record n-020

lowerwand125 after Tokoharu, Levy et al. 2026, GitHub (confirmed T-104)

Open

  • optimality

Bounds

Best known packing

5

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

5

The reported value, verified here.

Evidence
E-basic-grid-upper
Reported lower bound

981200

Proved by
wand125 2026
Kind
counting
Scope
Unrestricted unit-square packing with independent rotations and disjoint interiors.
Note
wand125's square-packing-bounds (6 October 2026) reports s(20)≥981/200 from a density of 327 uniform rectangles of total mass 1999999/100000, on a net the certificate declares: core side 1999/2000 and 832 half-angle tangents of step 1/2006, accepted there at every direction by sqverify-proof-net, the source's copy of this repository's sqverify_fast changed to read a declared net (a check2 bundle, with no C++ record). It is above the 49/10 the record reported (T-077). sqverify-fast, this repository's clean-room measure verifier, decided it here at all 832 directions on 6 October 2026.
Source
[wand125 mixed bounds check2 2026-10-06]
Evidence
E-n020-wand125-mixed-4905-report
Verified lower bound

981200

The reported value, verified here.

Evidence
E-n020-wand125-mixed-4905-sqverify-fast-replay
Gap

19200= 0.095

Verified upper minus verified lower.

Results in the register

Verification

upper: replayed here; lower: replayed here

—

Rigidity

not rigid, numerically checked, numerical multiprecision

Evidence: E-translation-escape-not-rigid

Scope

Square 15 of the retained witness (witness id 16) translates 1 along (0, 1) with the packing still valid, so the configuration admits a non-trivial feasible motion; 5 of its 20 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.

Open questions
  • Blocker (source evidence): Green's reported lower-bound proof, cited as private communication by Friedman, has not been recovered or independently replayed. E-green-ds7-theorem10-reported-lower

s(20) — open

External intake, 2026-10-06. wand125’s check2 source reports s(20)≥981/200=4.905 (T-104), from a density of 327 rectangles of total mass 1999999/100000<20, on a net the certificate declares: core side 1999/2000 and 832 half-angle tangents of step 1/2006. Since 1999/2000·(1+1/2006)<1, every unit square contains a core at a net angle strictly in its interior. The source ships no record of its C++ checker for it: it accepts it at every direction with its copy of this repository’s sqverify_fast, changed to read a declared net. It is above the 49/10 (T-077), reported and verified, by 0.005. This repository’s clean-room verifier sqverify-fast decided it here on 6 October 2026 at all 832 directions of its net, and refused two mutants scaled below coverage one: confirmed, re-implemented sharing the producer’s components (the source’s check is a copy of the same crate), so it is also the verified lower bound. wand125’s README says parts of the work were produced with AI assistance under human direction.

External report, 2026-10-05. Evan Daniel’s repository reports that 20 unit squares need a side above 3+42/3≈4.88562, the side of Wainwright’s packing of 19, so that s(19)<s(20). The certificate is a point cover of side 2443/500=4.886 with total mass 249862891/12500000≈19.98903<20, accepted by his zmx2 and zm_mixed.py. It is below the verified and reported bounds below, which already exceed 3+42/3; the source keeps it as an independent confirmation. It asks for no work, so it is not registered and was not replayed here. The source’s CREDITS.md says the work was produced by Claude (Anthropic) in a single session under human direction.

External intake, 2026-10-02. wand125’s rectangle-density source reports s(20)≥49/10=4.9, with total mass 1999/100=19.99<20, accepted by Tokoharu’s unchanged interval checker. The complete 201-direction coverage replay here accepted it again, after this repository’s exact audit checked that the regenerated checker input is the published one and checked the mass and net premises, so it was also the verified lower bound until the check2 certificate above superseded it later on 2026-10-06. wand125’s README says parts of the work were produced with AI assistance under human direction.

External intake, 2026-10-01. wand125’s rectangle-density source reports a direct 1959/400=4.8975 certificate for this case, whose reported bound the 2026-10-02 intake above raises, with total mass 1999/100=19.99<20, accepted by Tokoharu’s unchanged interval checker. The complete 201-direction coverage replay here accepted it again, after this repository’s exact audit checked that the regenerated checker input is the published one and checked the mass and net premises, so it was also the verified lower bound until the 2026-10-02 intake above. wand125’s README says parts of the work were produced with AI assistance under human direction.

External intake, 2026-09-27. wand125’s rectangle-density source reports a direct 979/200=4.895 certificate for this case, whose reported bound the 2026-10-01 intake above raises, with total mass 1999/100=19.99<20, accepted by Tokoharu’s unchanged interval checker. This repository’s exact audit checks that the regenerated checker input is the published one, and checks the mass and net premises; the complete coverage replay has not yet run here, so the verified lower bound is unchanged. wand125’s README says parts of the work were produced with AI assistance under human direction.

Open. The best known packing gives s(20)≤5. The verified lower bound is s(20)≥981/200=4.905, from wand125’s check2 certificate on a declared net (T-104, 2026-10-06, V3/C3), leaving a gap of 0.095. It superseded the source’s rectangle-density certificate of 2 October at 49/10=4.9 (T-077, replayed here on 2026-10-03 and entered on 2026-10-06), the verified lower bound earlier that day. Its certificate of 1 October, 1959/400=4.8975 (T-074, replayed here on 2026-10-02), held the field until then; its certificate of 27 September, 979/200=4.895 (T-045), held it earlier on 2 October, and had superseded this repository’s weighted fractional unavoidable-set certificate at 97/20=4.85 (T-021, 2026-09-05), which had raised the earlier verified 24/5=4.8 bound (T-020) by 0.05. The external reports below are recorded separately from these verified bounds.

The packing

The record catalogue does not picture n=20: no arrangement has ever been found that beats the trivial ⌈20⌉=5 grid, so the grid is still the best known packing. That is a statement about what has been searched, not a proof.

The lower bound

The earlier external report, [Friedman DS7], gives the lower-bound expression 45/5+22 for s(20) (approximately 4.617281506746). Friedman’s DS7 survey, Theorem 10, k=4, reports this bound at n=19; reference [8] is Green’s private communication (2000). The source proof has not been recovered. Inherited at n=20 by monotonicity. This is the literal specialization of the printed general theorem; Table 2 lists the weaker 6*sqrt(2)-4 at n=19-20. The source does not explain that tension. wand125’s certificates above have since replaced it in the reported field, and since their replays here, from 2026-10-02, in the verified one, where its check2 certificate of 6 October (T-104) now holds it. The source audit compares the exact theorem expressions separately from opaque table decimals.

Until 2026-10-02 the operative bound was the T-021 certificate at side 97/20: 1680 rationally weighted atoms on a D4-symmetric site set, total mass 19848723/1000000=19.848723<20, and least covered mass 200001/200000. An exact event-cell sweep and an interval branch and bound independently decide its conditions from the retained bytes and agree on that least mass.

Only Condition 2 mentions n among the five certificate conditions. The same atom set therefore certifies its side for every integer above its mass, which is 20 and upward; neither this case nor its companion needs a monotonicity step. The companion n=21 moved on to the stronger T-034 certificate at 122/25 on 2026-09-23, whose mass is above twenty and so does not reach this case, and is now proved: Evan Daniel’s mixed cover gives s(21)=5 (n-021). The earlier T-020 certificate at 24/5 remains valid and still supplies the verified n=19 bound.

Corrected 2 October 2026: Nagamochi’s Lemma 1 is false (Karakuş 2026), so his closed form below is now a reported bound whose published proof is incomplete (review). This register had recorded that proof as verified, its own error, logged as defect D-516. Before those adoptions, the verified field here used Nagamochi’s general closed form, which applies to every N≥4:

s(N)≥min{⌈N⌉,N−2⌊N⌋+1+1}

At n≤100, it remains the verified lower bound for 40 of the 65 open cases. Corrected 2 October 2026: it is now the verified lower bound of none of them; Karakuş’s weaker general bound replaced it there (T-083).

What the method can still add here

A certificate for n cannot exist above ⌈n⌉·B, which at B=9977/10000 is 4.9885, so the ceiling lay 0.1385 above the 97/20 bound this method reached. The certificates on declared nets raise B: at the 1999/2000 of T-104’s net the ceiling is 4.9975, which lies 0.0925 above the current 981/200. Unlike n=19, no packing binds first: the best known packing here is the trivial grid at 5. So this method could in principle close the case to within 5(1−B) of the upper bound, 0.0025 at that core, and can never reach it.

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-n020-wand125-mixed-4905-sqverify-fast-replay replayed here shared components V-sqverify-fast (first-party)
verified upper E-basic-grid-upper replayed here independent V-check-basic-bounds (first-party)