(VAR X Z Y)

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