(VAR M N X X1 X2 ) (RULES active(and(tt, X)) -> mark(X) active(plus(N, 0)) -> mark(N) active(plus(N, s(M))) -> mark(s(plus(N, M))) mark(and(X1, X2)) -> active(and(mark(X1), X2)) mark(tt) -> active(tt) mark(plus(X1, X2)) -> active(plus(mark(X1), mark(X2))) mark(0) -> active(0) mark(s(X)) -> active(s(mark(X))) and(mark(X1), X2) -> and(X1, X2) and(X1, mark(X2)) -> and(X1, X2) and(active(X1), X2) -> and(X1, X2) and(X1, active(X2)) -> and(X1, X2) plus(mark(X1), X2) -> plus(X1, X2) plus(X1, mark(X2)) -> plus(X1, X2) plus(active(X1), X2) -> plus(X1, X2) plus(X1, active(X2)) -> plus(X1, X2) s(mark(X)) -> s(X) s(active(X)) -> s(X) )