(VAR X X1 X2 X3 Y ) (RULES active(minus(0, Y)) -> mark(0) active(minus(s(X), s(Y))) -> mark(minus(X, Y)) active(geq(X, 0)) -> mark(true) active(geq(0, s(Y))) -> mark(false) active(geq(s(X), s(Y))) -> mark(geq(X, Y)) active(div(0, s(Y))) -> mark(0) active(div(s(X), s(Y))) -> mark(if(geq(X, Y), s(div(minus(X, Y), s(Y))), 0)) active(if(true, X, Y)) -> mark(X) active(if(false, X, Y)) -> mark(Y) mark(minus(X1, X2)) -> active(minus(X1, X2)) mark(0) -> active(0) mark(s(X)) -> active(s(mark(X))) mark(geq(X1, X2)) -> active(geq(X1, X2)) mark(true) -> active(true) mark(false) -> active(false) mark(div(X1, X2)) -> active(div(mark(X1), X2)) mark(if(X1, X2, X3)) -> active(if(mark(X1), X2, X3)) minus(mark(X1), X2) -> minus(X1, X2) minus(X1, mark(X2)) -> minus(X1, X2) minus(active(X1), X2) -> minus(X1, X2) minus(X1, active(X2)) -> minus(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) geq(mark(X1), X2) -> geq(X1, X2) geq(X1, mark(X2)) -> geq(X1, X2) geq(active(X1), X2) -> geq(X1, X2) geq(X1, active(X2)) -> geq(X1, X2) div(mark(X1), X2) -> div(X1, X2) div(X1, mark(X2)) -> div(X1, X2) div(active(X1), X2) -> div(X1, X2) div(X1, active(X2)) -> div(X1, X2) if(mark(X1), X2, X3) -> if(X1, X2, X3) if(X1, mark(X2), X3) -> if(X1, X2, X3) if(X1, X2, mark(X3)) -> if(X1, X2, X3) if(active(X1), X2, X3) -> if(X1, X2, X3) if(X1, active(X2), X3) -> if(X1, X2, X3) if(X1, X2, active(X3)) -> if(X1, X2, X3) )