%expo/3 :

expo(N,zero,zero) :- nat(N).
expo(zero,N,s(zero)) :- nat(N) , N \== zero.
expo(s(N),X,Y) :- expo(N,X,Z), mult(X,Z,Y).

/*

Exemple :

?- TROIS = s(s(s(zero))) , CINQ = s(s(s(s(s(zero)))),
   expo(TROIS , CINQ , TROISEXP5).

TROISEXP5= s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(

s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(

s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(

s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(

s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(s(zero)))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

yes

*/