nt(0).
nt(s(X)):-nt(X).
sum(0,X,X):-nt(X).
sum(s(X),Y,s(Z)):-sum(X,Y,Z).
mult(0,X,0).
mult(s(X),Y,Z):-mult(X,Y,Z1),sum(Z1,Y,Z).
power(X,0,s(0)).
power(X,s(Y),Z):-power(X,Y,Z1),mult(Z1,X,Z).
fact(0,s(0)).
fact(s(X),Z):-fact(X,Z1),mult(Z1,s(X),Z).
fib(0,s(0)).
fib(s(0),s(0)).
fib(s(s(N)),Z):-fib(s(N),Z1),fib(N,Z2),sum(Z1,Z2,Z).
ac(0,X,s(X)).
ac(s(Y),0,Z):-ac(Y,s(0),Z).
ac(s(Y),s(X),Z):-ac(s(Y),X,Z1),ac(Y,Z1,Z).
min(0,X,0).
min(X,0,0).
min(s(X),s(Y),s(Z)):-min(X,Y,Z).
max(0,X,X).
max(X,0,X).
max(s(X),s(Y),s(Z)):-max(X,Y,Z).
even(0).
odd(s(0)).
even(s(s(X))):-even(X).
odd(s(s(X))):-odd(X).



