(VAR x y) (RULES minus(x,y) -> if(gt(x,y),x,y) if(true,x,y) -> s(minus(p(x),y)) if(false,x,y) -> 0 p(0) -> 0 p(s(x)) -> x ge(x, 0) -> true ge(0, s(x)) -> false ge(s(x), s(y)) -> ge(x, y) gt(0, y) -> false gt(s(x),0) -> true gt(s(x), s(y)) -> gt(x, y) div(x,y) -> if1(ge(x,y), x, y) if1(true,x,y) -> if2(gt(y,0),x,y) if1(false,x,y) -> 0 if2(true,x,y) -> s(div(minus(x,y),y)) if2(false,x,y) -> 0 )