# Are all moves or types of moves (see details) in chess possible?

Inspired by this video The rarest move in chess, in which moves are categorized based on the format of their algebraic notation, so for example the rarest type of move (according to the author and Lichess data at the time of video upload) is "Bishop double disambiguations capture mates", for example Bf4xd6#. (Note: someone in the comments section said they just played a game with that move so it may no longer be the rarest) Edit: the reason why types of notation rather than individual distinct notations were used is that about 30% of all possible move notations don't appear in the data. I think many of them are just too rare if not impossible.

However as someone commented, stalemate was not considered in the notation's format, as there's no required symbol for stalemate in FIDE's handbook (see Is there a proper way to indicate "stalemate" on your scoresheet?), but then even the symbol for checkmate is also optional according to one answer. The same for other ways for the game game to end, such as fifty-move rule. So if combinations involving stalemate and other ways to legally end the game are also considered separate types, like types involving checkmates, are all types of moves still possible? And if so, are all individual moves possible too (sorry if there's an obvious impossible combination that I missed)? Clarification: as long as they are not obviously against the rules, such as combination of check and stalemate is obviously impossible.

Since no one has answered yet, I will try some simple analysis first.

Let's first make sure all vanilla moves/move types are possible without considering ways for the game to end. In the data, all types but bishop/knight double disambiguation capture checkmate and bishop double disambiguation capture check (non-mate) already exist, and it's not hard to see all these types are possible in constructed games. But are all moves possible too? Excluding obvious incompatibilities, such as disambiguation in conflict with piece movement rules (like Ra1b2) or impossible pawn/en passant situations (such as dxe2 en passant) - although the data's notation doesn't show e.p. directly, and pawn disambiguation is impossible (for standard algebraic notation afaik).

Now there are some combinations of disambiguation and target squares that are simply impossible. Rb2a1 is obviously illegal, but Bb2a1/Bba1/B1a1 are also geometrically impossible because no arrangement of other pieces can require such disambiguation.

Even if a disambiguated move is itself possible, it may be incompatible with checks/checkmates. Any move that can't possibly cause new squares to become attacked cannot cause check or checkmate. This is relevant if disambiguation in the move happens to make the start square and end square badly aligned with other pieces of the same type that must have been on certain squares, especially for queens. For example, Qb2a1 cannot cause new attacks because other queens must have been on b1 and a2 as well, so Qb2a1+ and Qb2a1# are impossible; same for Qc3(a1/b2),Qd4(a1/b2), and maybe more that I haven't found systematically. Edit: I'm not sure about bishops, as eg. Bc3b2 doesn't make the bishops attack more squares but may discover check/mate.

Is this too obvious to count? Maybe not and we can conclude that not all moves in chess (judging by naive combinations of algebraic notation) are possible, or we can say that these are not allowable algebraic notations of moves (just like double disambiguated rook moves are not allowed) but determining what are allowable algebraic notations of chess moves is not quite as trivial as one may think.

Apart from these geometrically constrained queen/bishop double disambiguated check/checkmate moves, are there other better examples of moves impossible for less trivial reasons? Like ones requiring retroanalysis? I don't know yet.

Going beyond vanilla notation to other ways to end the game, let's lump resignation, timeout and draw by agreement together because they can theoretically happen at any possible non-ending move, so they don't cause any impossibilities.

That leaves draws by stalemate, insufficient material, 50-move, or repetition. Stalemate is incompatible with checks/checkmates, moves that cause insufficient material must be captures (or promotions!), 50-move and repetition are incompatible with captures/pawn moves/castling/promotion, but otherwise I don't see an obvious impossibility.

I know this sounds tedious, but in case somehow no one else has done this before, why not do some "notation coverage testing" for chess? Edit: I later found this pageThink You Know Algebraic Notation? that lists numbers of possible algebraic move notations for each piece, but the author didn't show the full calculation so I have no idea which moves are actually ruled out and why.

• My SAN-strings repo might be of interest to you - but this answer made me realize I need to make some changes about which moves can deliver check/mate (issue) Commented Jun 10 at 18:01
• @JacksonH Thanks! However there must be many more impossible situations that I missed. Also, is disambiguation of a check/mate move still standard/necessary if only while multiple pieces could move there, only one possible move can be check/checkmate? This changes the result a lot, but at least Lichess still disambiguates. And interestingly, all three of you have different numbers of possible moves: you list the number as 29274, the author of Think You Know Algebraic Notation? as 29742, and the author of the video seems to assume a much higher number. There should be a collaboration for this. Commented Jun 10 at 19:06
• @alice_and_bobs I agree about the collaboration! Calculating the number of potential SAN moves is a surprisingly difficult problem that has interested me for a while. I think "modifiers" like `+`/`#` are generally considered optional (at least in most chess programs/software this seems to be the case), so I don't think the presence of one would make disambiguators unnecessary. Plus - I think that requirement would create so many edge cases that any solution would be way too difficult to prove correct! Commented Jun 10 at 19:29
• @JacksonH I considered narrowing the scope of the question to just possible vanilla notations without stalemate etc, but (it surprised me that) questions along those lines have been asked many times (including on SE) per Google, but tend to get different answers each time, from 20000s to 40000s. Is there really no definitive answer? And if not yet, can it be resolved with clever math, or is retroanalysis/experiment necessary? Maybe we need theoretical upper bound+experimental lower bound, but I imagine Lichess won't be too happy if people started trying to play all possible moves on it. Commented Jun 10 at 19:31
• I would have to do some analysis, but I am almost certain there cannot be more than 29,274 moves - my guess is the author of that article missed some of the weird edge cases with bishops (see here, from a commit right before I overhauled the script a few months ago) Commented Jun 10 at 19:35