Problem: sel(s(X),cons(Y)) -> sel(X,Z) sel1(s(X),cons(Y)) -> sel1(X,Z) first1(s(X),cons(Y)) -> cons1(quote(),first1(X,Z)) quote() -> sel1(X,Z) quote1() -> first1(X,Z) sel(0(),cons(X)) -> X first(0(),Z) -> nil() first(s(X),cons(Y)) -> cons(Y) from(X) -> cons(X) sel1(0(),cons(X)) -> quote() first1(0(),Z) -> nil1() quote() -> 01() quote1() -> cons1(quote(),quote1()) quote1() -> nil1() quote() -> s1(quote()) unquote(01()) -> 0() unquote(s1(X)) -> s(unquote(X)) unquote1(nil1()) -> nil() unquote1(cons1(X,Z)) -> fcons(unquote(X),unquote1(Z)) fcons(X,Z) -> cons(X) Proof: Fresh Variable Processor: loop length: 1 terms: sel(s(X),cons(Y)) context: sel(X,[]) substitution: Z -> sel(s(X),cons(Y)) Qed