Χρησιμοποιώντας αυτή την αναπαράσταση, μπορούν να ορισθούν και οι βασικές πράξεις της πρόσθεσης και του πολλαπλασιασμού καθώς και άλλες συναρτήσεις.
Η παραπάνω συμβολική αναπαράσταση των φυσικών αριθμών υλοποιείται εύκολα στην Prolog, όπως θα δούμε στα επόμενα παραδείγματα. Οι αριθμοί αναπαριστώνται με ένα σύνθετο όρο με ένα όρισμα. Έτσι ακολουθούμε με ακρίβεια τον παραπάνω ορισμό.
Το πρώτο κατηγόρημα το οποίο μπορούμε να ορίσουμε, ελέγχει αν ένας αριθμός
είναι φυσικός. Η υλοποίηση βασίζεται στον αναδρομικό μαθηματικό ορισμό,
ο οποίος λέει ότι:
Το παραπάνω γράφεται πολύ απλά σε Prolog:
%%% natural_num/0
%%% natural_num(Number)
natural_num(0).
natural_num(s(X)):-
natural_num(X).
Το σημείο το οποίο απαιτεί λίγο παραπάνω προσοχή είναι το πώς πέρνουμε τον "προηγούμενο" του αριθμού για να ελένξουμε αν και αυτός είναι φυσικός. Αυτό γίνεται μεσω της διαδικασίας ενοποίησης, στο όρισμα του κανόνα του κατηγορήματος. Ετσι αν κάνουμε την ερώτηση:
?- natural_num(s(s(0))).
η ενοποίηση στον πρώτο κανόνα θα ταυτοποιήσει το Χ με s(0),δηλαδή τον προηγούμενο του αρχικού φυσικού αριθμού.
Σύγκριση Αριθμών
Η σύγκριση δύο φυσικών αριθμών (σχέση μεγαλύτερο ή ίσο) γίνεται βάση
της απλής αναδρομικής σχέσης:
Πρόσθεση
Ο ορισμός της πρόσθεσης σε αυτή την αναπαράσταση των φυσικών αριθμών
ορίζεται με την ακόλουθη αναδρομική σχέση:
Για παράδειγμα s(0)+s(s(0)) = s( 0+s(s(0)) ) = s( 0 + s(s(0) ) = s(s(s(0))).
Η υλοποίηση σε Prolog αποτελεί απ'ευθείας κωδικοποίηση του παραπάνω
ορισμού:
%%% sum/3
%%% sum(X,Y,Z)
sum(0,X,X).
sum(s(X),Y,s(Z)):-
sum(X,Y,Z).
Πολλαπλασιασμός
Αντίστοιχα ο πολλαπλασιασμός ορίζεται χρησιμοποιώντας την πρόσθεση
που ορίσαμε παραπάνω, με την ακόλουθη αναδρομική σχέση:
η οποία κωδικοποιείται στην Prolog με τον ακόλουθο τρόπο:
%%% mult/3
%%% mult(X,Y,Z)
mult(0,_X,0).
mult(s(X),Y,Z):-
mult(X,Y,Z1),
sum(Z1,Y,Z).
Παραγοντικό
Η σχέση παραγοντικό ορίζεται χρησιμοποιώντας τον πολλαπλασιασμό
από τον ακλολουθο αναδρομικό τύπο:
Η οποία κωδικοποιείται σε Prolog από την επόμενη σχέση:
%%% factorial/2
%%% factorial(X,F)
factorial(0,s(0)).
factorial(s(X),Res):-
factorial(X,Res1),
mult(s(X),Res1,Res).
Δύναμη φυσικού σε φυσικό εκθέτη
Με παρόμοιο τρόπο, η δύναμη δίνεται από τον τύπο:
%%% pow/3
%%% pow(X,Y,Z)
pow(X,0,s(0)).
pow(X,s(Y),Z):-
pow(X,Y,Z1),
mult(X,Z1,Z).
Άρτιοι και Περιττοί Αριθμοί
Η αναδρομική σχέση η οποία ορίζει τους περιττούς αριθμούς είναι:
το οποίο κωδικοποιείται απλά σε Prolog με το παρακάτω κατηγόρημα:
%%% odd/1
%%% odd(X)
odd(s(0)).
odd(s(s(X))):-odd(X).
Ομοίως ορίζεται και η σχέση άρτιος:
το οποίο σε Prolog γράφεται επίσης απλά:
%%% even/1
%%% even(X)
even(0).
even(s(s(X))):-even(X).
Εναλλακτικά η σχέση άρτιος περιττός μπορεί να υλοποιηθεί με το ακόλουθο
κώδικα:
%%% odd_alt/1
%%% odd_alt(X)
odd_alt(s(X)):-even_alt(X).
%%% even_alt/1
%%% even_alt(X)
even_alt(0).
even_alt(s(X)):-odd_alt(X).
ο οποίος είναι η σχέση
η οποία είναι πιο κοντά στην "κοινή αντίληψη" για τους άρτιους και περιττούς αριθμούς.
Όπως είδαμε παραπάνω η υλοποίηση μαθηματικών ορισμών βασισμένων στην αναδρομή και σε μαθηματικούς συμβολισμούς είναι σχετικά απλή στην γλώσσα Prolog. Οι δυνατότητες αυτές που προσφέρει η γλωσσα την κάνουν κατάλληλη για διάφορες εφαρμογές των συμβολικών μαθηματικών και ειδικότερα για μια αρκετά ενδιαφέρουσα κατηγορία η οποία ονομάζεται αυτόματη απόδειξη θεωρημάτων (automated theorem proving) .