(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)
)