p(X,Z) :- q(X,Y), p(Y,Z). % Klausel (1)
p(X,X).                   % Klausel (2)
q(a,b).                   % Klausel (3)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

p(a).
p(b).
q(b).

% ?- p(X), q(X).
%  |- X=a
%    ?- q(a).
%      |- Fehlschlag! Sackgasse, backtrack nach oben
%  |- X=b
%    ?- q(b).
%      |-
%        ?- .  Antwort: X=b
% 

p :- p.
p.

% ?- p.
%   |- 1. Klausel
%     ?- p.
%       |- 1. Klausel
%         |- p.
%           ...
% 

isPeano(s(N)) :- isPeano(N).
isPeano(z).

% ?- isPeano(P).
%   |- P = s(N1)
%     ?- isPeano(N1).
%       |- N1 = s(N2)
%         ?- isPeano(N2).
%           ...
% Tipp: Klauseln für Speziall VOR allgemeineren Klauseln!!
