Introduction to Prolog Programming