prolog can encourages a programmer to start with a well-structured description of a problem