bird(sparrow) si puo' dimostrare utilizzando un numero arbitrario di volte l'ultima regola. animal(lion). animal(sparrow) :- !. animal(X) :- bird(X). has_feathers(sparrow). bird(eagle). bird(X) :- animal(X), has_feathers(X). oppure, meglio. animal(lion). animal(sparrow). animal(X) :- bird(X),!. has_feathers(sparrow). bird(eagle). bird(X) :- animal(X), has_feathers(X).