%query: minus(b,f,f).

/* from Arts, Giesl, 2001 */

p(0,0).
p(s(X),X).
le(0,Y,true).
le(s(X),0,false).
le(s(X),s(Y),B) :- le(X,Y,B).
minus(X,Y,Z) :- le(X,Y,B), if(B,X,Y,Z).
if(true,X,Y,0).
if(false,X,Y,s(Z)) :- p(X,X1), minus(X1,Y,Z).
