На каком то другом портале нашли неточность в задаче. вот текст партии.
1. d4 e5 2. Bd2 Bc5 3. Bb4 Bxd4 4. Nf3 Be3 5. Nd4 Bf4 6. Nc6 dxc6 7. Na3 Bg3 8.hxg3 Bg4 9. Rh6 Bf3 10. exf3 Nf6 11. Rg6 Ng4 12. fxg4 fxg6 13. Bc4 c5 14. Qd3 cxb4 15. Ke2 Nc6 16. Ke3 Na5 17. Ke4 Nb3 18. cxb3 Qd7 19. Nc2 Qa4 20. bxa4 Rf8 21. a5 Rf5 22. Qa3 Rg5 23. Kd5 Rh5 24. gxh5 bxa3 25. Nb4 O-O-O+
Так что задача некорректна.
нужно добавить условие что последний ход чёрных не был взятием с b на a
Условие гласит:
"Последний ход белых был ходом коня. Докажите, что черные не могут рокироваться."
А условие задачи на самом деле должно звучать вот так:
"Последний ход белых был ходом коня. Докажите, что черные не могут рокироваться. Сейчас ход белых."
Тогда в данном случае, действительно, чёрные последним ходом не могли бить с b на a, ведь по условию белые коня на b4 поставили!!!
не уточнено чей сейчас ход.
Условие выделенное жирным очень даже корректно.
В задачах, по умолчанию ход белых, а если черных то оговаривается (разумеется не там, где нужно определить очередность хода)
В первом посте условие однозначно говорит, что последний ход был ход белых, и был ходом коня, а в условии которое вы привели уже нет однозначности. Поэтому очередность хода можно не указывать.
На счет доказуемости еще не проверял.