NO Problem 1: (VAR v_NonEmpty:S N:S X:S XS:S) (RULES 2nd(cons(X:S)) -> head(XS:S) from(X:S) -> cons(X:S) head(cons(X:S)) -> X:S sel(0,cons(X:S)) -> X:S sel(s(N:S),cons(X:S)) -> sel(N:S,XS:S) take(0,XS:S) -> nil take(s(N:S),cons(X:S)) -> cons(X:S) ) Problem 1: Extra Variables Processor: -> Rules: 2nd(cons(X:S)) -> head(XS:S) from(X:S) -> cons(X:S) head(cons(X:S)) -> X:S sel(0,cons(X:S)) -> X:S sel(s(N:S),cons(X:S)) -> sel(N:S,XS:S) take(0,XS:S) -> nil take(s(N:S),cons(X:S)) -> cons(X:S) -> The system has extra variables. The problem is infinite.