Problem:
 2nd(cons(X)) -> head(XS)
 sel(s(N),cons(X)) -> sel(N,XS)
 from(X) -> cons(X)
 head(cons(X)) -> X
 take(0(),XS) -> nil()
 take(s(N),cons(X)) -> cons(X)
 sel(0(),cons(X)) -> X

Proof:
 Fresh Variable Processor:
  loop length: 1
  terms:
   2nd(cons(X))
  context: head([])
  substitution:
   XS -> 2nd(cons(X))
  Qed