>37 eats(tom,snakes),alive. これはホーン節ではありません。
syntax errorになっている筈です。 >33 で云われているくっつけるとは
eats(tom,snakes).
eats(john,X) :- eats(tom,X). のように間に他の定義節を入れないことでしょう。

ただ私がSWI-prologで確かめたところ、これが原因ではないようです。