Details zum Backtracking
Mit der Wissenbasis
p(a).
p(b).
c:-p(X).
reagiert Prolog auf die Anfrage 
?- c. mit 
yes. Ein Trace zeigt, dass sich das
System mit der Ersetzung 
p(a) zufriedengibt. 
b wird also nicht in 
p
eingesetzt. Das liegt daran, dass das Prädikat 
c nullstellig ist. Schreibt man
c(X):-p(X), so werden alle Möglichkeiten für 
X getestet und ausgegeben.
Dieses Backtracking kann man auch mit dem Prädikat 
fail erzwingen, wie folgende
Wissensbasis zeigt:
p(a).
p(b).
c:-p(X),fail.
c:-p(X).
Bitte mit 
trace. überprüfen!