(VAR X Z Y) (RULES dbl(0) -> 0 dbl(s) -> s dbls(nil) -> nil dbls(cons) -> cons sel(0,cons) -> X sel(s,cons) -> sel(X,Z) indx(nil) -> nil indx(cons) -> cons from -> cons dbl1(0) -> 01 dbl1(s) -> s1(s1(dbl1(X))) sel1(0,cons) -> X sel1(s,cons) -> sel1(X,Z) quote(0) -> 01 quote(s) -> s1(quote(X)) quote(dbl(X)) -> dbl1(X) quote(sel(X,Y)) -> sel1(X,Y) )