(VAR x y z) (RULES minus_active(0,y) -> 0 mark(0) -> 0 minus_active(s(x),s(y)) -> minus_active(x,y) mark(s(x)) -> s(mark(x)) ge_active(x,0) -> true mark(minus(x,y)) -> minus_active(x,y) ge_active(0,s(y)) -> false mark(ge(x,y)) -> ge_active(x,y) ge_active(s(x),s(y)) -> ge_active(x,y) mark(div(x,y)) -> div_active(mark(x),y) div_active(0,s(y)) -> 0 mark(if(x,y,z)) -> if_active(mark(x),y,z) div_active(s(x),s(y)) -> if_active(ge_active(x,y),s(div(minus(x,y),s(y))),0) if_active(true,x,y) -> mark(x) minus_active(x,y) -> minus(x,y) if_active(false,x,y) -> mark(y) ge_active(x,y) -> ge(x,y) if_active(x,y,z) -> if(x,y,z) div_active(x,y) -> div(x,y) )