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