(from AG01 4.26) (VAR x y) (RULES p(0) -> 0 p(s(x)) -> x le(0,y) -> true le(s(x),0) -> false le(s(x),s(y)) -> le(x,y) minus(x,y) -> if(le(x,y),x,y) if(true,x,y) -> 0 if(false,x,y) -> s(minus(p(x),y)) )