(0) Obligation:

Generalized rewrite system (where rules with free variables on rhs are allowed):
The TRS R consists of the following rules:

after(s(N), cons(X)) → after(N, XS)
from(X) → cons(X)
after(0, XS) → XS