(VAR N X XS Y YS ) (STRATEGY CONTEXTSENSITIVE (pairNs ) (cons 1) (0 ) (incr 1) (oddNs ) (s 1) (take 1 2) (nil ) (zip 1 2) (pair 1 2) (tail 1) (repItems 1) ) (RULES pairNs -> cons(0, incr(oddNs)) oddNs -> incr(pairNs) incr(cons(X, XS)) -> cons(s(X), incr(XS)) take(0, XS) -> nil take(s(N), cons(X, XS)) -> cons(X, take(N, XS)) zip(nil, XS) -> nil zip(X, nil) -> nil zip(cons(X, XS), cons(Y, YS)) -> cons(pair(X, Y), zip(XS, YS)) tail(cons(X, XS)) -> XS repItems(nil) -> nil repItems(cons(X, XS)) -> cons(X, cons(X, repItems(XS))) )