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