I wrote this simple Prolog program.
man(socrates). mortal(X) :- man(X). immortal(X) :- immortal(X).
I asked it the usual questions, such as
How about this little program:
loopy(Y) :- read(X), Z is X+Y, print(Z), nl, loopy(Y).
Your Mr. Prolog would infer, that loopy(Y) has already been called and would fail.