(VAR X N M 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) )