Additive Squares

Does a bi-infinite additive-square-free word exist?

An additive square is a pair of adjacent blocks of the same length with the same sum, like [3 0 4] [2 5 0]. An open problem, posed independently by Pirillo–Varricchio (1994) and Halbeisen–Hungerbühler (2000), asks: is there an infinite word over a finite set of integers containing no additive square? Equivalently: is there a Lipschitz function f : ℤ → ℤ whose graph contains no nontrivial three-term arithmetic progression? (The letters are the increments f(n+1) − f(n).)

The challenge: pick any finite set of integers and write the longest word you can in which no two adjacent equal-length blocks have equal sums. Every alphabet has its own record to beat — and an alphabet whose records never stop growing would settle the problem.

No such word exists over any alphabet of 3 or fewer integers; every 4-letter alphabet settled so far has a finite maximum (14 are closed exactly here); from size 5 up the question is wide open. Progress runs in two directions. Push a record up: every longer word is a better lower bound, and a family of records growing without bound answers yes. Close an alphabet: an exhaustive search certifies its exact maximum, and if every alphabet eventually closes, the answer is no. On the plot below, a record lifts its point higher; a closure turns it into a filled square.

Records

510205010020050100200500100020005000100002000050000100000 100,000-letter submission cap alphabet diameter (log) → record word length (log) → {0, 1, 2, 3, 4} (contiguous): length 154 {0, 1, 2, 3, 5}: length 145 {0, 1, 2, 4, 5}: length 254 {0, 1, 2, 4, 7}: length 461 {0, 1, 2, 4, 8}: length 686 {0, 1, 3, 7}: length 141 {0, 1, 3, 7, 12}: length 1495 {0, 1, 3, 7, 15}: length 1562 {0, 1, 4, 9, 18}: length 2240 {0, 1, 5, 11, 22}: length 2743 {0, 2, 7, 21, 36}: length 10120 {0, 1, 2, 3} (contiguous): length 50 (closed: max = 50) {0, 1, 2, 4}: length 62 (closed: max = 62) {0, 1, 2, 5}: length 86 (closed: max = 86) {0, 1, 3, 4}: length 55 (closed: max = 55) {0, 1, 4, 5}: length 55 (closed: max = 55) {0, 2, 3, 5}: length 55 (closed: max = 55) {0, 1, 2, 3, 4, 5} (contiguous): length 474 {0, 1, 2, 3, 4, 7}: length 575 {0, 1, 3, 7, 12, 20}: length 2823 {0, 1, 5, 11, 22, 40}: length 8169 {0, 1, 2, 3, 4, 5, 6} (contiguous): length 1288 {0, 1, 2, 3, 6}: length 409 {0, 1, 2, 3, 4, 6}: length 467 {0, 1, 2, 6}: length 111 (closed: max = 111) {0, 1, 2, 5, 6}: length 416 {0, 1, 2, 3, 4, 5, 7}: length 1559 {0, 1, 2, 3, 4, 5, 6, 7} (contiguous): length 2718 {0, 1, 2, 3, 4, 5, 6, 7, 8} (contiguous): length 7031 {0, 1, 2, 3, 9}: length 780 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10} (contiguous): length 40030 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} (contiguous): length 20009 {0, 1, 3, 7, 12, 20, 30}: length 23449 {0, 1, 3, 8, 12, 18}: length 3206 {0, 1, 8, 14}: length 741 {0, 1, 10, 14}: length 600 {0, 1, 9, 14}: length 798 {0, 1, 11, 14}: length 574 {0, 1, 9, 13}: length 571 {0, 2, 9, 14}: length 545 {0, 1, 6, 14}: length 532 {0, 2, 5, 14}: length 517 {0, 4, 5, 14}: length 514 {0, 1, 3, 14}: length 506 {0, 1, 12, 14}: length 504 {0, 1, 5, 14}: length 516 {0, 1, 4, 14}: length 492 {0, 1, 10, 13}: length 490 {0, 1, 6, 13}: length 488 {0, 3, 8, 14}: length 484 {0, 1, 11, 13}: length 503 {0, 2, 5, 13}: length 482 {0, 2, 11, 14}: length 482 {0, 2, 10, 13}: length 478 {0, 1, 10, 12}: length 457 {0, 1, 9, 12}: length 452 {0, 2, 9, 13}: length 460 {0, 2, 3, 14}: length 444 {0, 3, 5, 14}: length 442 {0, 2, 8, 13}: length 442 {0, 3, 10, 14}: length 441 {0, 3, 9, 13}: length 439 {0, 2, 9, 12}: length 434 {0, 1, 7, 12}: length 427 {0, 1, 8, 13}: length 471 {0, 1, 3, 13}: length 413 {0, 3, 4, 14}: length 411 {0, 1, 9, 11}: length 431 {0, 1, 4, 13}: length 494 {0, 3, 7, 13}: length 400 {0, 1, 7, 11}: length 400 {0, 1, 5, 13}: length 401 {0, 3, 9, 14}: length 401 {0, 3, 7, 12}: length 399 {0, 2, 7, 13}: length 398 {0, 5, 6, 13}: length 393 {0, 1, 5, 12}: length 389 {0, 2, 3, 13}: length 401 {0, 1, 2, 14}: length 379 {0, 5, 6, 14}: length 378 {0, 5, 8, 14}: length 379 {0, 1, 4, 12}: length 389 {0, 2, 6, 13}: length 374 {0, 1, 8, 11}: length 372 {0, 1, 8, 12}: length 372 {0, 3, 5, 13}: length 407 {0, 3, 4, 13}: length 371 {0, 2, 5, 12}: length 370 {0, 4, 7, 13}: length 371 {0, 4, 5, 13}: length 370 {0, 1, 7, 14}: length 366 {0, 1, 4, 11}: length 366 {0, 5, 7, 14}: length 364 {0, 2, 7, 14}: length 363 {0, 1, 7, 13}: length 358 {0, 6, 7, 14}: length 358 {0, 4, 7, 14}: length 357 {0, 2, 3, 12}: length 356 {0, 1, 5, 11}: length 354 {0, 1, 8, 10}: length 353 {0, 1, 3, 12}: length 352 {0, 3, 7, 14}: length 353 {0, 3, 5, 12}: length 347 {0, 3, 4, 12}: length 346 {0, 4, 9, 14}: length 349 {0, 5, 7, 13}: length 377 {0, 3, 6, 14}: length 339 {0, 1, 2, 13}: length 337 {0, 1, 6, 12}: length 343 {0, 3, 8, 12}: length 338 {0, 3, 6, 13}: length 336 {0, 4, 8, 13}: length 334 {0, 4, 6, 13}: length 343 {0, 2, 7, 11}: length 352 {0, 3, 5, 11}: length 331 {0, 2, 8, 11}: length 331 {0, 1, 2, 12}: length 329 {0, 3, 8, 13}: length 330 {0, 2, 7, 12}: length 327 {0, 5, 6, 12}: length 326 {0, 2, 4, 13}: length 328 {0, 1, 6, 11}: length 317 {0, 3, 4, 11}: length 310 {0, 4, 7, 12}: length 306 {0, 3, 7, 11}: length 291 {0, 1, 6, 10}: length 305 {0, 4, 5, 12}: length 320 {0, 1, 3, 11}: length 289 {0, 1, 2, 11}: length 286 {0, 2, 7, 10}: length 284 {0, 1, 7, 10}: length 276 {0, 3, 6, 11}: length 276 {0, 1, 5, 9}: length 275 {0, 2, 6, 11}: length 297 {0, 2, 5, 11}: length 283 {0, 2, 3, 11}: length 269 {0, 1, 5, 10}: length 267 {0, 1, 7, 9}: length 283 {0, 2, 5, 10}: length 262 {0, 3, 5, 10}: length 262 {0, 2, 4, 11}: length 276 {0, 4, 5, 11}: length 259 {0, 4, 6, 11}: length 253 {0, 1, 4, 10}: length 247 {0, 3, 4, 10}: length 246 {0, 1, 2, 10}: length 247 {0, 1, 3, 10}: length 239 {0, 1, 4, 9}: length 236 {0, 4, 5, 10}: length 235 {0, 3, 6, 10}: length 233 {0, 1, 6, 8}: length 232 {0, 2, 4, 9}: length 225 {0, 1, 6, 9}: length 220 {0, 2, 3, 10}: length 217 {0, 2, 5, 9}: length 215 {0, 1, 2, 9}: length 212 {0, 1, 3, 9}: length 207 {0, 2, 6, 9}: length 205 {0, 1, 5, 8}: length 196 {0, 1, 4, 8}: length 215 {0, 2, 5, 8}: length 195 {0, 3, 4, 9}: length 180 {0, 2, 3, 9}: length 180 {0, 1, 2, 8}: length 200 {0, 1, 3, 8}: length 173 {0, 3, 5, 9}: length 166 {0, 3, 4, 8}: length 171 {0, 1, 4, 7}: length 161 {0, 2, 3, 8}: length 184 {0, 1, 5, 7}: length 167 {0, 1, 2, 7}: length 148 {0, 2, 3, 7}: length 139 {0, 2, 4, 7}: length 145 {0, 1, 4, 6}: length 118 {0, 2, 3, 6}: length 113 {0, 1, 3, 6}: length 110 (closed: max = 110) {0, 1, 3, 5}: length 88 (closed: max = 88) {0, 3, 7, 10}: length 60 {0, 1, 12, 13}: length 60 {0, 3, 11, 14}: length 60 {0, 5, 6, 11}: length 60 {0, 1, 10, 11}: length 60 {0, 2, 5, 7}: length 60 (closed: max = 60) {0, 2, 11, 13}: length 60 {0, 2, 7, 9}: length 60 {0, 4, 9, 13}: length 60 {0, 5, 7, 12}: length 60 {0, 1, 11, 12}: length 60 {0, 1, 5, 6}: length 60 (closed: max = 60) {0, 1, 7, 8}: length 60 {0, 2, 9, 11}: length 60 {0, 3, 10, 13}: length 60 {0, 1, 13, 14}: length 60 {0, 5, 9, 14}: length 60 {0, 1, 8, 9}: length 60 {0, 1, 6, 7}: length 60 (closed: max = 60) {0, 3, 5, 8}: length 60 (closed: max = 60) {0, 3, 8, 11}: length 60 {0, 4, 5, 9}: length 60 {0, 4, 7, 11}: length 60 {0, 1, 9, 10}: length 60 {0, 6, 7, 13}: length 60 {0, 5, 8, 13}: length 60 {0, 3, 4, 7}: length 58 (closed: max = 58) {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} (contiguous): length 85014 {0, 1, 4, 15, 60}: length 24906 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13} (contiguous): length 100000 {0, 1, 3, 7, 12, 20, 30, 44, 65, 80}: length 30783 {0, 1, 2, 4, 7, 12, 20, 29, 38, 52, 73, 83, 108, 121, 145, 168}: length 74035 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19} (contiguous): length 100000 {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21} (contiguous): length 100000 {0, 1, 11, 15}: length 881 {0, 3, 41, 85, 90, 96}: length 27021 {0, 2, 46, 80, 85, 99}: length 28018 {0, 1, 2, 85, 89, 96}: length 36033 {0, 1, 2, 97, 98, 99}: length 21250 {0, 1, 2, 70, 71, 72}: length 17606 {0, 1, 2, 184, 185, 186}: length 27646 {0, 1, 2, 211, 212, 213}: length 36025 {0, 1, 4, 10, 12, 17}: length 6874 {0, 3, 6, 71, 74, 77}: length 4889 {0, 6, 43, 49, 86, 92}: length 4710 {0, 3, 6, 7, 8, 13}: length 62 {0, 4, 9, 11, 12, 17}: length 2451 {0, 4, 8, 69, 88, 95}: length 5191 {0, 1, 2, 9, 17, 18}: length 192 {0, 1, 2, 11, 17, 19}: length 224 {0, 1, 2, 15, 18, 19}: length 244

One point per canonical alphabet: the longest verified additive-square-free word against the alphabet’s diameter d (max letter − min letter). Squares are closed alphabets whose exact maximum is known. The dashed line is the 100,000-letter submission cap. Color is the alphabet size: 456812162432

Submit a word

Paste a word: integers separated by spaces, commas, or line breaks. The word is checked exactly, then normalized — translating, scaling, and reflecting an alphabet gives an equivalent word, so records are kept per canonical alphabet (minimum 0, gcd 1, lexicographically ≤ its mirror). A record is set when your word is strictly longer than the alphabet’s current best. Alphabets need at least 4 distinct letters — smaller ones are settled (additive squares are unavoidable there), so such words are verified but not recorded.

max 100,000 letters per submission · or use the API