(VAR X Y) (RULES nats -> adx(zeros) zeros -> cons(0,zeros) incr(cons(X,Y)) -> cons(s(X),incr(Y)) adx(cons(X,Y)) -> incr(cons(X,adx(Y))) hd(cons(X,Y)) -> X tl(cons(X,Y)) -> Y )