(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) )