This is a small solver for the riddle at the end of Harry Potter and the Philosopher's Stone. It uses Prolog with the clpfd library for constrained logic programming over finite domains.
I've written a blog article for the project here: https://blog.onnoeberhard.com/2019/08/21/cool-logic.html