Losing Chess

Wikipedia page on Losing Chess


Solving Status

The move 1. e3 has been solved as a win for White under both FICS and
International Rules. The final leg was actually much easier than expected,
as I wasted around a year on false leads. In fact, the not-too-deep idea
1. e3 b6 2. a4 e6 3. Ra3 Bxa3 4. Nxa3 Qh4 5. a5 bxa5 6. Qh5! leads to
some queen races where White just needs a bit deeper search to show
a good score, and the proof only took a few hours (128 cores).

The largest part of 1. e3 b6 remains 1. e3 b6 2. a4 e6 3. Ra3 Bxa3 4. Nxa3 b5,
and the 2... b5 lines are also quite nontrivial. However, both of those were
done in August 2015, a few months after the 2. a4 idea was first tried.

This email (or a small variant) was circulated to a number of associated
Losing Chess mailing lists, some for programmers, some for aficionados,
or mathematics colleagues, or interested chess (grand)masters, ...


Status report

Losing Chess: 1. e3 wins for White (PDF, short form)
Perhaps when the ICGA Journal is publishing again this version will be
submitted as a 2-page news item.

Losing Chess: 1. e3 wins for White (Oct 2016) (PDF, 240K, 18 pages)

(Old versions)
Status report (Aug 2014) (PDF, 115K, short form, ICGA Journal 37/2)
Status report (Aug 2013) (PDF, longer, with positions)
Status report (Sep 2012) (PDF, longer, with positions)



10 Oct 2016: 1. e3 b6 is solved. Sorry it took so long...
See Page for 1. e3 b6 for (old) news.
As with e6, the main thing was to try a different line, here 5. a5 bxa5 6. Qh5!
refutes 2. a4 e6 3. Ra3 Bxa3 4. Nxa3 Qh4, though one needs to obtain a good
resolution of the races with queen captures to see the endgames are won.
I had tried 5. h3 instead, which in the end (and only retrospectively) was
a fool's errand of 14 months. Also, I could never get 2. Ba6 to work, and
instead 2. a4! (a surprise to many) was the move that worked.
Total tree size is 491933802, including 2... b5 at 137.9 million nodes,
and 2. a4 e6 3. Ra3 Bxa3 4. Nxa3 b5 with 269 million nodes. 

12 Feb 2015: 1. e3 c5 is solved.
See Page for 1. e3 c5 for old news, and for partial proof trees.
As explained there, in the critical line 19. g3! needed to be tried, while
the try Nd1 looked decent for quite some time. Total tree size is 228501054.

13 Aug 2014: 1. e3 e6 is now solved. See Page for 1. e3 e6 for old news.
The main thing was to switch to 8. Qxf7!, which I think had been underestimated
(both by me and others). Much time was wasted in the other lines.

2013: Significant rewrite with "ClusterGUI" (and as the name might imply,
a cluster of 128 or so cores was typically used from then on), and also to
handle transpositions into known wins more cleanly (without this, 1. e3 e6
is probably too hard).

Sep 2012: 1. e3 b5 is solved. Catalin Francu responds that he had recently
solved 1. e3 Nh6 in a week when testing a new laptop for speed. Fortified
by this knowledge, 1. e3 g5 is quickly solved too (Francu pointed out that
2. Ba6 bxa6 was won, which led to me looking at this rather than 2. Bd3).

early 2012: Inspired by suicidechess.ca (Carl Lajeunesse) and Nilatac (Francu),
work starts. 1. e3 c6 is re-solved. 1. e3 Nc6 is solved.


Source code

May 6 (2015) source tarball (860K) (Linux-based)

It seems that "Subtree" is broken (due to how transpositions are handled),
unless possibly if one uses "Prune" first. This also means that "Merge" and
"Exclude" are in general broken. This is not currently a great priority for me
to fix. There's also a bug in UtilityGUI when Searching successive positions.

Oct 23 (2016) source tarball

Not sure how much was really changed, certainly not too much was fixed.
However, this is the version from when the final line was solved, and also
contains a few extra files (like the LaTeX file and LCserver.c for the web).


Proof trees (with md5sum of bz2 file)

easy12.done.bz2 (1.5MB) 5d7fede37dafc29509ef7cf118574334
e3c6.done.bz2 (2.3MB) 382021495d0d34403fe2d4dc22c815b2
e3Nc6.done.bz2 (13MB) 00c913623d16c7892833b65ca28b36e3
e3Nh6.done.bz2 (20MB) 417b33f08fd90afa017931e2ed9cde48
e3g5.done.bz2 (54MB) 1f6fee7a9d0acfa3c1c3fb5cdc21da26
e3b5.done.bz2 (103MB) 4fe3f64fae21247092499dd8263fe4f7
e3e6.done.bz2 (63MB) 54149388cd3fca7b84f867e846e5a3a0
e3c5.done.bz2 (289MB) 65f52983aa0b99444c1e7c799943b223
e3b6.proof.bz2(740MB) d19df1d18518c7a216b44a1e878550cd
Warning: this last file will not load in 32-bit Windows WinningGUI.
See the 1. e3 b6 page for a splitting into smaller parts. The b6 proof
will probably also be revised somewhat in the next few days (when the
word "done" might replace "proof" in the filename).

Here is everything but c5 and b6 in one file:
easy18done.bz2 (254MB) 45ae6e978ad4e9c64934ae6e8e940c42

1. e3 c6 was first solved by Ben Nye in Feb 2003, and 1. e3 Nh6 was first
solved by Catalin Francu soon after I told him of my 2012 solving of 1. e3 b5.

There is also the revision project that is aimed at producing "better" solutions.



Page for proof lines
Page about tablebases


White moves that lose

The Sep 28 (2014) update contains the ability to have "NULL" moves.
This was to expedite some proofs asked for by Klaas Steenhuis,
most notably 1. h3 and 1. b4 (which appeared reversed as 1. NULL h6, etc).
[He has more recently shown that Black wins both 1. c3 e5! and 1. f3 e6].

h3.LOST.proof.bz2 (5.3MB) 889dcb5385118405109a0b0038f9eba3
b4.LOST.proof.bz2 (19MB) fca952417d69964be773a9883b29cd58

Note: These files are "inverted" and thus break the verifier.
They can be uninverted with "./proof_invert uninvert FILENAME"

Here are the latest solved lines by Klaas, which he asked me to put here.

c3.LOST.proof.bz2 (9.8MB) 829c2ff9cefa3fc93b10e41f5da4db43

Oct 7 (2015): Klaas has solved 1. a3 e6 as a win for Black.
He also has simplified 1. f3 d5! by a significant margin over 1. f3 e6.

a3.LOST.proof.bz2 (250MB) d8cdbb28bdf83e36cbdb94a258bf4887
f3.LOST.proof.bz2 (18MB) 6010cd1071a066ba07c59a2f308b9d33

Jan 17 (2016): Klaas has simplified the b4 proof.

b4.new.LOST.proof.bz2 (7.9MB) 7b0b0c67da856b68e4b8153b59f74a1b

Feb 23: Some reduction (from Klaas) of the 1. f3 d5 proof.

f3d5_new.proof.bz2 (14MB) 15e50e95b4207880f47615903cbeb996


Windows usage

For Windows users, thanks to Klaas Steenhuis I have a RAR file
that contains Java classes and the proof tree parser.

LOSING_CHESS32.rar (145K) 91ca08bee3d6bd585618ff6a0d03b207
LOSING_CHESS64.rar (145K) 11c14dd41adc36f96b64adeda8d5c934

The "32" version is for 32-bit Windows, and "64" for 64-bit Windows.
I have not tested the latter, and it should only be necessary for proof
files larger than about 250 million nodes.

First you need to have the Java Runtime environment installed.

Then you will need to expand either the above LOSING_CHESS32.rar or
LOSING_CHESS64.rar archive, putting all files (.class files, PARSE_WIN.exe,
and MERIFONT.TTF) into a directory named C:\LOSING_CHESS (this is so that
Java knows where the .exe file is -- I can make a FileChooser for it, but
it seems overkill).

Then you should be able to open a Command Prompt, change directories via


and then run the Java applet with

  java WinningGUI

It should bring up a FileChooser, which is a loader for the proof tree.

However, this FileChooser fails for me sometimes, and it is probably better
to move the desired proof file (say easy12.done) to the C:\LOSING_CHESS
directory, and run via "java WinningGUI easy12.done"