(VAR X XS) (RULES nats -> cons(0) pairs -> cons(0) odds -> incr(pairs) incr(cons(X)) -> cons(s(X)) head(cons(X)) -> X tail(cons(X)) -> XS )