Anwendung der Systemprädikate between und findall
Prolog belegt zur Lösungsfindung Variablen mit möglichen Werten. Was ist aber, wenn die Variable
z.B. durch das Prädikat 
integer(X) nur mit einer ganzen Zahl belegt werden darf? Kann
man damit rechnen, dass das Prolog-System 
alle ganzen Zahlen einsetzt? Wohl kaum!
Hier zeigt sich der Wert des System-Prädikats 
between(+UG,+OG,?Zahl), das alle
ganzen Zahlen zwischen zwei Grenzen liefern kann.
Beispiele
teilt(X,Y):-between(1,Y,X),Y mod X =:= 0.
teilermenge(X,M):-findall(T,teilt(T,X),M).
?- teilermenge(24,M).
M = [1, 2, 3, 4, 6, 8, 12, 24] ;
Der Operator "is"  
Die Hilfe gibt an, dass 
-Number is +Expr wahr wird, wenn 
Number  mit der Zahl,die
aus der Auswertung von 
Expr entsteht, unifiziert werden kann.
Normalerweise wird 
is mit einer ungebundenen Variablen auf der linken Seite benutzt.
Das heißt, 
is wird gewöhnlich im Sinne eines Zuweisungsoperators (rechte Seite wird
ausgewertet und der linken Seite zugewiesen, 
:= in Pascal) benutzt.
Numerische Gleichheit soll mit 
=:= getestet werden.
Beispiel
teilt(X,Y) :- 0 is Y mod X.
funktioniert (leider!), ist aber schlechter Stil
teilt(X,Y) :- Y mod X =:= 0.
So ist es besser!