An introduction to logic programming through Prolog - Spivey, J. M. (Prentice Hall International series in computer science, 1996)