(VAR X Z ) (RULES sel(0,cons) -> X sel(s,cons) -> sel(X,Z) dbl(0) -> 0 dbl(s) -> s dbls(nil) -> nil dbls(cons) -> cons indx(nil) -> nil indx(cons) -> cons from -> cons )