Answers.Body: <p>So, it looks like you are searching for an engine that supports <a href="https://www.chessprogramming.org/Mate_Search" rel="nofollow noreferrer">Mate Search</a>. In regards to the UCI protocol, you would want an engine that supports the <code>go mate &lt;x&gt;</code> command. Stockfish does implement this command, so you should be able to use it to search for mate if a mate exists. I believe that some chess GUIs allow you to run a mate search, which should run this command.</p>
  <p>However, Stockfish is a full-fledged chess engine, and it is built to find the best move in the position, not necessarily a forced checkmate. The way that it does this is by aggressively pruning the search tree so that it can focus the search on moves that are likely to be the best. A quick peek at the source code appears to show that the <code>go mate &lt;x&gt;</code> command is used to cut the search off only when a mate is found within x moves. I don't see anything that changes much in the way that the search operates based on this parameter.</p>
  <p>Tools for finding checkmate, such as Chest UCI or the Fritz Mate engine, work differently. They will typically not prune any part of the search tree, and they do not include any sort of static evaluation. They merely search every possible move until it finds a sequence of moves ending in checkmate. This means that it will inevitably be slower than a standard engine.</p>
  <p><a href="https://en.chessbase.com/post/mate-search-in-fritz" rel="nofollow noreferrer">Here's a snippet from an article that Fritz published in 2004.</a></p>
  <blockquote>
  <p>This brings us to why the Mate engine is so different from other chess engines: it has no &quot;pruning&quot; function. Mate will always evaluate every position it comes across in its search, ignoring nothing. And that's precisely why the engine appears to be so slow. It's not actually any &quot;slower&quot; than a regular chess engine (it's still evaluating approximately the same number of positions per second as a normal chess engine) -- it just looks slower because it's not cutting out any candidate moves, so it takes much longer for Mate to reach a particular search depth.</p>
  </blockquote>
  <p>This <a href="https://www.talkchess.com/forum3/viewtopic.php?t=44185" rel="nofollow noreferrer">TalkChess.com post</a> from 2012 discusses a desire for a successor to Chest for finding checkmates, but it doesn't appear to have gone too far other than to conclude that chess engine developers are interested in building strong chess playing applications, so standard engines are probably not going to support this functionality. Somebody in the post mentioned that <a href="https://www.vlasak.biz/critter/" rel="nofollow noreferrer">Critter</a> is good at these endgame puzzles, but it doesn't look like its been worked on since 2012, and it is still an engine first and foremost. However, it wouldn't hurt to give it a try and see if it works well for any of the positions that you find to be problematic.</p>
  <p><a href="https://talkchess.com/forum3/viewtopic.php?f=7&amp;t=82555&amp;sid=ecfa96cda707500f83c7298a470810f2" rel="nofollow noreferrer">This more recent post for a couple months ago</a> is asking for a similar application. They mention both Matefish and Huntsman in this thread as Stockfish forks which are meant for searching for mate, but also state that they are slower than ChestUCI or Gustav (which appears to be proprietary, German-language, and <a href="https://www.talkchess.com/forum3/viewtopic.php?f=2&amp;t=70719&amp;p=798494" rel="nofollow noreferrer">hard to acquire</a>).</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-11-01T16:13:14.870Z
Answers.Text: https://chess.stackexchange.com/users/30255/nelson-o
  Finally someone who knows about the problem with regular engines.
  Your answer in short sums it up.
  But I was hoping for some kind of new software which store the proofed solution in some kind of table bases format so after calculating the forced mate tree lines, you could navigate the situation and all the possible responses back and forth like the already calculated table bases and the GUIs that support them
Answers.UserDisplayName: Wassim Saeed
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-10-31T15:40:28.850Z
Answers.LastActivityDate: 2023-10-31T15:40:28.850Z
Answers.UserDisplayName: Nelson O
Body: <p>I have some positions in my games which engine analysis indicates that some lines (not the ones I played) lead to a checkmate in 6 or 7 or 10 moves.
  But normal engines are not reliable here so I use ChestUCI as a proofing tool with some success till now.</p>
  <p>Is there anything better and faster than ChestUCI that is also free?
  For those who don't doubt stock fish
  Please check
  Here <a href="https://talkchess.com/forum3/viewtopic.php?f=2&amp;t=36714&amp;start=10" rel="nofollow noreferrer">https://talkchess.com/forum3/viewtopic.php?f=2&amp;t=36714&amp;start=10</a>
  and
  Here <a href="https://github.com/vondele/matetrack" rel="nofollow noreferrer">https://github.com/vondele/matetrack</a></p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-28T10:44:19.377Z
Comments.Text: Stockfish does the job nice enough...
Comments.UserDisplayName: Stevo
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-28T18:01:36.287Z
Comments.Text: https://chess.stackexchange.com/users/26052/stevo no it does not.
Comments.UserDisplayName: Wassim Saeed
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-28T19:09:19.937Z
Comments.Text: @WassimSaeed is there a position where you find Stockfish fails? If so, it would be valuable to [edit] the question to add that so people can better understand your motivation here.
Comments.UserDisplayName: SecretAgentMan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-28T19:10:25.100Z
Comments.Text: "_normal engines are not reliable here_"   A few example positions would be helpful and greatly improve this post.
Comments.UserDisplayName: SecretAgentMan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-29T17:56:22.917Z
Comments.Text: There are Stockfish forks that are supposed to be better at *finding* certain checkmates than the main engine, e.g. https://github.com/joergoster/Stockfish-old/tree/huntsman2
  That being said, this question appears to be more a question of verifying that a checkmate indeed is one? I think for the latter Stockfish should be sufficient, however, if one wanted, one could write a program that "cross checks" Stockfishs variations which would be more efficient than search for a mate from scratch.
Comments.UserDisplayName: koedem
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-31T17:13:21.493Z
Comments.Text: I highly doubt you can build a legal position that is #6 that SF16 on a decent computer does not find instantly.
Comments.UserDisplayName: JP Alioto
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-31T18:25:01.500Z
Comments.Text: ["8/4p1Rp/4pk1P/4p3/1n2P1p1/B2P2p1/3P2P1/K7 w - - 0 1"](https://www.chess.com/blog/Rocky64/stockfish-and-a-forced-mate-problem-it-cannot-solve) is mate in 9, but Lichess sees it as mate in 12 until you play it out. I think it finds that capturing black's knight leads to mate, so it doesn't consider the faster mate that is available without the capture. However, I doubt that this is a common problem in analyzing real games, and I don't know how much value there is in studying these positions.
Comments.UserDisplayName: Nelson O
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-31T20:12:33.797Z
Comments.Text: @NelsonO Yeah, the online engines are limited in depth and are older versions. I'll test it on SF16 and see what depth is required to find #9. You can also use [chessify](https://chessify.me/), but that is not free :)
Comments.UserDisplayName: JP Alioto
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-10-31T20:58:18.460Z
Comments.Text: @JPAlioto Actually, it looks like that position is solvable by Stockfish 16 and it is Lichess's continued usage of Stockfish 14 that is likely the problem. However, the same user posted ["8/2Kp4/2bPp3/4P1p1/3R2P1/1pNPpPp1/prp3P1/Qnk1B3 w - - 0 1"](https://www.chess.com/blog/Rocky64/kling-combination-a-self-stalemate-theme-that-perplexes-stockfish) which is only solved by Stockfish 16 as mate in 7 if you disable NNUE. Overall, these are interesting positions, but it clearly takes a lot of effort to find such positions.
Comments.UserDisplayName: Nelson O
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-11-01T16:43:56.617Z
Comments.Text: here is ChestUCI output 
  WinCHEST Ver.3.19i+, 08-Mar-2011
  Options = -M2044 -Z40 -eL -00 -5 -rS
  Input file: STDIN
  Reading job:
  % created by ChestUCI Ver.5.2
  W:  Ka1 Rg7 Ba3 Pd2 Pd3 Pe4 Pg2 Ph6 (8)
  B:  Kf6 Nb4 Pe7 Pe6 Pe5 Pg4 Pg3 Ph7 (8)
  FEN: 8/4p1Rp/4pk1P/4p3/1n2P1p1/B2P2p1/3P2P1/K7 w - -
  analysing (mate in 40 moves):
  Solution (in 9 moves):
   a1b1
  Time (virt) = 7.242 sec
  
  PV= a1b1 b4d5 b1c1 d5b4 c1d1 b4d5 d1e1 d5b4 e1f1 b4d5 f1g1 d5b4 g1h1 b4c6 
  end of solution tree
  Total Time (virt) = 7.358 sec
Comments.UserDisplayName: Wassim Saeed
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-11-23T17:23:09.223Z
Comments.Text: Here is a mate in two position that Stockfish is inept at until higher depths (due to null-move pruning): n1N3br/2p1Bpkr/1pP2R1b/pP3Pp1/P5P1/1P1p4/p2P4/K7 w - - 0 1 
  I found this at https://talkchess.com/forum3/viewtopic.php?f=7&t=82816
Comments.UserDisplayName: Hank's back rank
Tags: <analysis><software><checkmate>
Title: Mate Solving or problem solving software
ThreadText: # Mate Solving or problem solving software
  
  (Asked by: username_0 on 2023-10-27)
  
  I have some positions in my games which engine analysis indicates that some lines (not the ones I played) lead to a checkmate in 6 or 7 or 10 moves.
  But normal engines are not reliable here so I use ChestUCI as a proofing tool with some success till now.
  
  Is there anything better and faster than ChestUCI that is also free?
  For those who don't doubt stock fish
  Please check
  Here <https://talkchess.com/forum3/viewtopic.php?f=2&t=36714&start=10>
  and
  Here <https://github.com/vondele/matetrack>
  
  **Tags:** analysis, software, checkmate
  
  > **Comments:**
  > **username_1**: Stockfish does the job nice enough...  
  > **username_0**: https://chess.stackexchange.com/users/26052/stevo no it does not.  
  > **username_2**: @WassimSaeed is there a position where you find Stockfish fails? If so, it would be valuable to [edit] the question to add that so people can better understand your motivation here.  
  > **username_2**: "_normal engines are not reliable here_"   A few example positions would be helpful and greatly improve this post.  
  > **username_3**: There are Stockfish forks that are supposed to be better at *finding* certain checkmates than the main engine, e.g. https://github.com/joergoster/Stockfish-old/tree/huntsman2 That being said, this question appears to be more a question of verifying that a checkmate indeed is one? I think for the latter Stockfish should be sufficient, however, if one wanted, one could write a program that "cross checks" Stockfishs variations which would be more efficient than search for a mate from scratch.  
  > **username_4**: I highly doubt you can build a legal position that is #6 that SF16 on a decent computer does not find instantly.  
  > **username_5**: ["8/4p1Rp/4pk1P/4p3/1n2P1p1/B2P2p1/3P2P1/K7 w - - 0 1"](https://www.chess.com/blog/Rocky64/stockfish-and-a-forced-mate-problem-it-cannot-solve) is mate in 9, but Lichess sees it as mate in 12 until you play it out. I think it finds that capturing black's knight leads to mate, so it doesn't consider the faster mate that is available without the capture. However, I doubt that this is a common problem in analyzing real games, and I don't know how much value there is in studying these positions.  
  > **username_4**: @NelsonO Yeah, the online engines are limited in depth and are older versions. I'll test it on SF16 and see what depth is required to find #9. You can also use [chessify](https://chessify.me/), but that is not free :)  
  > **username_5**: @JPAlioto Actually, it looks like that position is solvable by Stockfish 16 and it is Lichess's continued usage of Stockfish 14 that is likely the problem. However, the same user posted ["8/2Kp4/2bPp3/4P1p1/3R2P1/1pNPpPp1/prp3P1/Qnk1B3 w - - 0 1"](https://www.chess.com/blog/Rocky64/kling-combination-a-self-stalemate-theme-that-perplexes-stockfish) which is only solved by Stockfish 16 as mate in 7 if you disable NNUE. Overall, these are interesting positions, but it clearly takes a lot of effort to find such positions.  
  > **username_0**: here is ChestUCI output  WinCHEST Ver.3.19i+, 08-Mar-2011 Options = -M2044 -Z40 -eL -00 -5 -rS Input file: STDIN Reading job: % created by ChestUCI Ver.5.2 W:  Ka1 Rg7 Ba3 Pd2 Pd3 Pe4 Pg2 Ph6 (8) B:  Kf6 Nb4 Pe7 Pe6 Pe5 Pg4 Pg3 Ph7 (8) FEN: 8/4p1Rp/4pk1P/4p3/1n2P1p1/B2P2p1/3P2P1/K7 w - - analysing (mate in 40 moves): Solution (in 9 moves):  a1b1 Time (virt) = 7.242 sec  PV= a1b1 b4d5 b1c1 d5b4 c1d1 b4d5 d1e1 d5b4 e1f1 b4d5 f1g1 d5b4 g1h1 b4c6  end of solution tree Total Time (virt) = 7.358 sec  
  > **username_6**: Here is a mate in two position that Stockfish is inept at until higher depths (due to null-move pruning): n1N3br/2p1Bpkr/1pP2R1b/pP3Pp1/P5P1/1P1p4/p2P4/K7 w - - 0 1  I found this at https://talkchess.com/forum3/viewtopic.php?f=7&t=82816  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_5 on 2023-10-31. Score: 1
  
  So, it looks like you are searching for an engine that supports [Mate Search](https://www.chessprogramming.org/Mate_Search). In regards to the UCI protocol, you would want an engine that supports the `go mate`  command. Stockfish does implement this command, so you should be able to use it to search for mate if a mate exists. I believe that some chess GUIs allow you to run a mate search, which should run this command.
  
  However, Stockfish is a full-fledged chess engine, and it is built to find the best move in the position, not necessarily a forced checkmate. The way that it does this is by aggressively pruning the search tree so that it can focus the search on moves that are likely to be the best. A quick peek at the source code appears to show that the `go mate`  command is used to cut the search off only when a mate is found within x moves. I don't see anything that changes much in the way that the search operates based on this parameter.
  
  Tools for finding checkmate, such as Chest UCI or the Fritz Mate engine, work differently. They will typically not prune any part of the search tree, and they do not include any sort of static evaluation. They merely search every possible move until it finds a sequence of moves ending in checkmate. This means that it will inevitably be slower than a standard engine.
  
  [Here's a snippet from an article that Fritz published in 2004.](https://en.chessbase.com/post/mate-search-in-fritz)
  
  > This brings us to why the Mate engine is so different from other chess engines: it has no "pruning" function. Mate will always evaluate every position it comes across in its search, ignoring nothing. And that's precisely why the engine appears to be so slow. It's not actually any "slower" than a regular chess engine (it's still evaluating approximately the same number of positions per second as a normal chess engine) -- it just looks slower because it's not cutting out any candidate moves, so it takes much longer for Mate to reach a particular search depth.
  
  This [TalkChess.com post](https://www.talkchess.com/forum3/viewtopic.php?t=44185) from 2012 discusses a desire for a successor to Chest for finding checkmates, but it doesn't appear to have gone too far other than to conclude that chess engine developers are interested in building strong chess playing applications, so standard engines are probably not going to support this functionality. Somebody in the post mentioned that [Critter](https://www.vlasak.biz/critter/) is good at these endgame puzzles, but it doesn't look like its been worked on since 2012, and it is still an engine first and foremost. However, it wouldn't hurt to give it a try and see if it works well for any of the positions that you find to be problematic.
  
  [This more recent post for a couple months ago](https://talkchess.com/forum3/viewtopic.php?f=7&t=82555&sid=ecfa96cda707500f83c7298a470810f2) is asking for a similar application. They mention both Matefish and Huntsman in this thread as Stockfish forks which are meant for searching for mate, but also state that they are slower than ChestUCI or Gustav (which appears to be proprietary, German-language, and [hard to acquire](https://www.talkchess.com/forum3/viewtopic.php?f=2&t=70719&p=798494)).
  
  > **Comments:**
  > **username_0**: https://chess.stackexchange.com/users/30255/nelson-o Finally someone who knows about the problem with regular engines. Your answer in short sums it up. But I was hoping for some kind of new software which store the proofed solution in some kind of table bases format so after calculating the forced mate tree lines, you could navigate the situation and all the possible responses back and forth like the already calculated table bases and the GUIs that support them  
  
  ---
  
  