(VAR X XS X1 X2) (RULES a__nats -> cons(0,incr(nats)) a__pairs -> cons(0,incr(odds)) a__odds -> a__incr(a__pairs) a__incr(cons(X,XS)) -> cons(s(mark(X)),incr(XS)) a__head(cons(X,XS)) -> mark(X) a__tail(cons(X,XS)) -> mark(XS) mark(nats) -> a__nats mark(incr(X)) -> a__incr(mark(X)) mark(pairs) -> a__pairs mark(odds) -> a__odds mark(head(X)) -> a__head(mark(X)) mark(tail(X)) -> a__tail(mark(X)) mark(cons(X1,X2)) -> cons(mark(X1),X2) mark(0) -> 0 mark(s(X)) -> s(mark(X)) a__nats -> nats a__incr(X) -> incr(X) a__pairs -> pairs a__odds -> odds a__head(X) -> head(X) a__tail(X) -> tail(X) )