% % basic.prolog % % Developed by Ondrej Jombik % Copyright (c) 2005 Platon SDG, http://platon.sk/ % Licensed under terms of GNU General Public License. % All rights reserved. % % Changelog: % 2005-05-02 - created % % $Platon$ my_plus(0,Z,Z). my_plus(s(U),Y,s(W)):-my_plus(U,Y,W). my_times(0,_,0). my_times(s(X),Y,Z):-my_times(X,Y,W),my_plus(W,Y,Z). my_div2(0,0). my_div2(s(0),0). my_div2(s(s(X)),s(Y)):-my_div2(X,Y). my_fact(0,s(0)). my_fact(s(N), S1):-my_fact(N,S),my_times(S,s(N),S1). my_less(0,s(_)). my_less(s(A),s(B)):-my_less(A,B). my_eq(0,0). my_eq(s(A),s(B)):-my_eq(A,B). my_min(A,B,A):-my_less(A,B). my_min(A,B,B):-my_less(B,A). my_min(A,B,A):-my_eq(A,B). % my_mod(X,Y,Z);-my_less(Z,Y),my_plus(W,Z,X),my_times(Y,Q,W). my_mod(X,Y,X):-my_less(X,Y). my_mod(X,Y,Z):-my_plus(X1,Y,X),my_mod(X1,Y,Z). my_gcd(X,Y,Gcd):-my_mod(X,Y,Z),my_gcd(Y,Z,Gcd). my_gcd(X,0,X):-my_less(0,X). % my_int(X):-nat(X). % my_int(m(s(X))):-nat(X). % ll(A,B):-[A|B].