(VAR X Y Z ) (RULES sel(s(X),cons(Y)) -> sel(X,Z) from(X) -> cons(X) first(0,Z) -> nil first(s(X),cons(Y)) -> cons(Y) sel(0,cons(X)) -> X )