YES

Problem:
 active(first(0(),X)) -> mark(nil())
 active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
 active(from(X)) -> mark(cons(X,from(s(X))))
 active(first(X1,X2)) -> first(active(X1),X2)
 active(first(X1,X2)) -> first(X1,active(X2))
 active(s(X)) -> s(active(X))
 active(cons(X1,X2)) -> cons(active(X1),X2)
 active(from(X)) -> from(active(X))
 first(mark(X1),X2) -> mark(first(X1,X2))
 first(X1,mark(X2)) -> mark(first(X1,X2))
 s(mark(X)) -> mark(s(X))
 cons(mark(X1),X2) -> mark(cons(X1,X2))
 from(mark(X)) -> mark(from(X))
 proper(first(X1,X2)) -> first(proper(X1),proper(X2))
 proper(0()) -> ok(0())
 proper(nil()) -> ok(nil())
 proper(s(X)) -> s(proper(X))
 proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
 proper(from(X)) -> from(proper(X))
 first(ok(X1),ok(X2)) -> ok(first(X1,X2))
 s(ok(X)) -> ok(s(X))
 cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
 from(ok(X)) -> ok(from(X))
 top(mark(X)) -> top(proper(X))
 top(ok(X)) -> top(active(X))

Proof:
 DP Processor:
  DPs:
   active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
   active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
   active#(from(X)) -> s#(X)
   active#(from(X)) -> from#(s(X))
   active#(from(X)) -> cons#(X,from(s(X)))
   active#(first(X1,X2)) -> active#(X1)
   active#(first(X1,X2)) -> first#(active(X1),X2)
   active#(first(X1,X2)) -> active#(X2)
   active#(first(X1,X2)) -> first#(X1,active(X2))
   active#(s(X)) -> active#(X)
   active#(s(X)) -> s#(active(X))
   active#(cons(X1,X2)) -> active#(X1)
   active#(cons(X1,X2)) -> cons#(active(X1),X2)
   active#(from(X)) -> active#(X)
   active#(from(X)) -> from#(active(X))
   first#(mark(X1),X2) -> first#(X1,X2)
   first#(X1,mark(X2)) -> first#(X1,X2)
   s#(mark(X)) -> s#(X)
   cons#(mark(X1),X2) -> cons#(X1,X2)
   from#(mark(X)) -> from#(X)
   proper#(first(X1,X2)) -> proper#(X2)
   proper#(first(X1,X2)) -> proper#(X1)
   proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
   proper#(s(X)) -> proper#(X)
   proper#(s(X)) -> s#(proper(X))
   proper#(cons(X1,X2)) -> proper#(X2)
   proper#(cons(X1,X2)) -> proper#(X1)
   proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
   proper#(from(X)) -> proper#(X)
   proper#(from(X)) -> from#(proper(X))
   first#(ok(X1),ok(X2)) -> first#(X1,X2)
   s#(ok(X)) -> s#(X)
   cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
   from#(ok(X)) -> from#(X)
   top#(mark(X)) -> proper#(X)
   top#(mark(X)) -> top#(proper(X))
   top#(ok(X)) -> active#(X)
   top#(ok(X)) -> top#(active(X))
  TRS:
   active(first(0(),X)) -> mark(nil())
   active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
   active(from(X)) -> mark(cons(X,from(s(X))))
   active(first(X1,X2)) -> first(active(X1),X2)
   active(first(X1,X2)) -> first(X1,active(X2))
   active(s(X)) -> s(active(X))
   active(cons(X1,X2)) -> cons(active(X1),X2)
   active(from(X)) -> from(active(X))
   first(mark(X1),X2) -> mark(first(X1,X2))
   first(X1,mark(X2)) -> mark(first(X1,X2))
   s(mark(X)) -> mark(s(X))
   cons(mark(X1),X2) -> mark(cons(X1,X2))
   from(mark(X)) -> mark(from(X))
   proper(first(X1,X2)) -> first(proper(X1),proper(X2))
   proper(0()) -> ok(0())
   proper(nil()) -> ok(nil())
   proper(s(X)) -> s(proper(X))
   proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
   proper(from(X)) -> from(proper(X))
   first(ok(X1),ok(X2)) -> ok(first(X1,X2))
   s(ok(X)) -> ok(s(X))
   cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
   from(ok(X)) -> ok(from(X))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  TDG Processor:
   DPs:
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(from(X)) -> s#(X)
    active#(from(X)) -> from#(s(X))
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(first(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X2)
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(s(X)) -> active#(X)
    active#(s(X)) -> s#(active(X))
    active#(cons(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(from(X)) -> active#(X)
    active#(from(X)) -> from#(active(X))
    first#(mark(X1),X2) -> first#(X1,X2)
    first#(X1,mark(X2)) -> first#(X1,X2)
    s#(mark(X)) -> s#(X)
    cons#(mark(X1),X2) -> cons#(X1,X2)
    from#(mark(X)) -> from#(X)
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X)
    proper#(s(X)) -> s#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X)
    proper#(from(X)) -> from#(proper(X))
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    s#(ok(X)) -> s#(X)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    from#(ok(X)) -> from#(X)
    top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X))
   TRS:
    active(first(0(),X)) -> mark(nil())
    active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
    active(from(X)) -> mark(cons(X,from(s(X))))
    active(first(X1,X2)) -> first(active(X1),X2)
    active(first(X1,X2)) -> first(X1,active(X2))
    active(s(X)) -> s(active(X))
    active(cons(X1,X2)) -> cons(active(X1),X2)
    active(from(X)) -> from(active(X))
    first(mark(X1),X2) -> mark(first(X1,X2))
    first(X1,mark(X2)) -> mark(first(X1,X2))
    s(mark(X)) -> mark(s(X))
    cons(mark(X1),X2) -> mark(cons(X1,X2))
    from(mark(X)) -> mark(from(X))
    proper(first(X1,X2)) -> first(proper(X1),proper(X2))
    proper(0()) -> ok(0())
    proper(nil()) -> ok(nil())
    proper(s(X)) -> s(proper(X))
    proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
    proper(from(X)) -> from(proper(X))
    first(ok(X1),ok(X2)) -> ok(first(X1,X2))
    s(ok(X)) -> ok(s(X))
    cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
    from(ok(X)) -> ok(from(X))
    top(mark(X)) -> top(proper(X))
    top(ok(X)) -> top(active(X))
   graph:
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X))
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X)
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    top#(ok(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    top#(ok(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    top#(ok(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    top#(ok(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X)))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    top#(ok(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    top#(ok(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(ok(X)) -> top#(active(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(first(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(from(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(from(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> from#(proper(X)) ->
    from#(ok(X)) -> from#(X)
    proper#(from(X)) -> from#(proper(X)) ->
    from#(mark(X)) -> from#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(first(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> s#(proper(X)) -> s#(ok(X)) -> s#(X)
    proper#(s(X)) -> s#(proper(X)) -> s#(mark(X)) -> s#(X)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2)) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2)) ->
    first#(X1,mark(X2)) -> first#(X1,X2)
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2)) ->
    first#(mark(X1),X2) -> first#(X1,X2)
    from#(ok(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
    from#(ok(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
    from#(mark(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
    from#(mark(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
    s#(ok(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    s#(ok(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    s#(mark(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    s#(mark(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    cons#(mark(X1),X2) -> cons#(X1,X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    cons#(mark(X1),X2) -> cons#(X1,X2) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    first#(ok(X1),ok(X2)) -> first#(X1,X2) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    first#(ok(X1),ok(X2)) -> first#(X1,X2) ->
    first#(X1,mark(X2)) -> first#(X1,X2)
    first#(ok(X1),ok(X2)) -> first#(X1,X2) ->
    first#(mark(X1),X2) -> first#(X1,X2)
    first#(mark(X1),X2) -> first#(X1,X2) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    first#(mark(X1),X2) -> first#(X1,X2) ->
    first#(X1,mark(X2)) -> first#(X1,X2)
    first#(mark(X1),X2) -> first#(X1,X2) ->
    first#(mark(X1),X2) -> first#(X1,X2)
    first#(X1,mark(X2)) -> first#(X1,X2) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    first#(X1,mark(X2)) -> first#(X1,X2) ->
    first#(X1,mark(X2)) -> first#(X1,X2)
    first#(X1,mark(X2)) -> first#(X1,X2) ->
    first#(mark(X1),X2) -> first#(X1,X2)
    active#(from(X)) -> from#(s(X)) -> from#(ok(X)) -> from#(X)
    active#(from(X)) -> from#(s(X)) ->
    from#(mark(X)) -> from#(X)
    active#(from(X)) -> from#(active(X)) ->
    from#(ok(X)) -> from#(X)
    active#(from(X)) -> from#(active(X)) -> from#(mark(X)) -> from#(X)
    active#(from(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    active#(from(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    active#(from(X)) -> cons#(X,from(s(X))) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(from(X)) -> cons#(X,from(s(X))) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(from(X)) -> active#(X) ->
    active#(from(X)) -> from#(active(X))
    active#(from(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    active#(from(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(from(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> active#(X2)
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(from(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    active#(from(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    active#(from(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(from(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(s(X)) -> s#(active(X)) -> s#(ok(X)) -> s#(X)
    active#(s(X)) -> s#(active(X)) -> s#(mark(X)) -> s#(X)
    active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
    active#(s(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    active#(s(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(s(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(s(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(s(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    active#(s(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    active#(s(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(s(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z)) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z)) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z) ->
    first#(X1,mark(X2)) -> first#(X1,X2)
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z) ->
    first#(mark(X1),X2) -> first#(X1,X2)
    active#(first(X1,X2)) -> first#(active(X1),X2) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    active#(first(X1,X2)) -> first#(active(X1),X2) ->
    first#(X1,mark(X2)) -> first#(X1,X2)
    active#(first(X1,X2)) -> first#(active(X1),X2) ->
    first#(mark(X1),X2) -> first#(X1,X2)
    active#(first(X1,X2)) -> first#(X1,active(X2)) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    active#(first(X1,X2)) -> first#(X1,active(X2)) ->
    first#(X1,mark(X2)) -> first#(X1,X2)
    active#(first(X1,X2)) -> first#(X1,active(X2)) ->
    first#(mark(X1),X2) -> first#(X1,X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(active(X))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> active#(X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(s(X))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> s#(X)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X2)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(first(X1,X2)) -> active#(X1) -> active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
   SCC Processor:
    #sccs: 7
    #rules: 22
    #arcs: 221/1444
    DPs:
     top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> top#(proper(X))
    TRS:
     active(first(0(),X)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(s(X)) -> s(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(from(X)) -> from(active(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     s(mark(X)) -> mark(s(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     from(mark(X)) -> mark(from(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(s(X)) -> s(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(from(X)) -> from(proper(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     s(ok(X)) -> ok(s(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     from(ok(X)) -> ok(from(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Usable Rule Processor:
     DPs:
      top#(ok(X)) -> top#(active(X))
      top#(mark(X)) -> top#(proper(X))
     TRS:
      active(first(0(),X)) -> mark(nil())
      active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
      active(from(X)) -> mark(cons(X,from(s(X))))
      active(first(X1,X2)) -> first(active(X1),X2)
      active(first(X1,X2)) -> first(X1,active(X2))
      active(s(X)) -> s(active(X))
      active(cons(X1,X2)) -> cons(active(X1),X2)
      active(from(X)) -> from(active(X))
      first(mark(X1),X2) -> mark(first(X1,X2))
      first(X1,mark(X2)) -> mark(first(X1,X2))
      first(ok(X1),ok(X2)) -> ok(first(X1,X2))
      cons(mark(X1),X2) -> mark(cons(X1,X2))
      cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
      s(mark(X)) -> mark(s(X))
      s(ok(X)) -> ok(s(X))
      from(mark(X)) -> mark(from(X))
      from(ok(X)) -> ok(from(X))
      proper(first(X1,X2)) -> first(proper(X1),proper(X2))
      proper(0()) -> ok(0())
      proper(nil()) -> ok(nil())
      proper(s(X)) -> s(proper(X))
      proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
      proper(from(X)) -> from(proper(X))
     KBO Processor:
      argument filtering:
       pi(0) = []
       pi(first) = [0,1]
       pi(active) = 0
       pi(nil) = []
       pi(mark) = [0]
       pi(s) = [0]
       pi(cons) = 0
       pi(from) = [0]
       pi(proper) = 0
       pi(ok) = 0
       pi(top#) = 0
      usable rules:
       active(first(0(),X)) -> mark(nil())
       active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(first(X1,X2)) -> first(active(X1),X2)
       active(first(X1,X2)) -> first(X1,active(X2))
       active(s(X)) -> s(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(from(X)) -> from(active(X))
       first(mark(X1),X2) -> mark(first(X1,X2))
       first(X1,mark(X2)) -> mark(first(X1,X2))
       first(ok(X1),ok(X2)) -> ok(first(X1,X2))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       s(mark(X)) -> mark(s(X))
       s(ok(X)) -> ok(s(X))
       from(mark(X)) -> mark(from(X))
       from(ok(X)) -> ok(from(X))
       proper(first(X1,X2)) -> first(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(nil()) -> ok(nil())
       proper(s(X)) -> s(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(from(X)) -> from(proper(X))
      weight function:
       w0 = 1
       w(top#) = w(from) = w(s) = w(mark) = w(nil) = w(0) = 1
       w(ok) = w(proper) = w(cons) = w(active) = w(first) = 0
      precedence:
       from ~ s > first > top# ~ ok ~ proper ~ cons ~ mark ~ nil ~ active ~ 0
      problem:
       DPs:
        top#(ok(X)) -> top#(active(X))
       TRS:
        active(first(0(),X)) -> mark(nil())
        active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(first(X1,X2)) -> first(active(X1),X2)
        active(first(X1,X2)) -> first(X1,active(X2))
        active(s(X)) -> s(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(from(X)) -> from(active(X))
        first(mark(X1),X2) -> mark(first(X1,X2))
        first(X1,mark(X2)) -> mark(first(X1,X2))
        first(ok(X1),ok(X2)) -> ok(first(X1,X2))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        s(mark(X)) -> mark(s(X))
        s(ok(X)) -> ok(s(X))
        from(mark(X)) -> mark(from(X))
        from(ok(X)) -> ok(from(X))
        proper(first(X1,X2)) -> first(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(nil()) -> ok(nil())
        proper(s(X)) -> s(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(from(X)) -> from(proper(X))
      Restore Modifier:
       DPs:
        top#(ok(X)) -> top#(active(X))
       TRS:
        active(first(0(),X)) -> mark(nil())
        active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(first(X1,X2)) -> first(active(X1),X2)
        active(first(X1,X2)) -> first(X1,active(X2))
        active(s(X)) -> s(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(from(X)) -> from(active(X))
        first(mark(X1),X2) -> mark(first(X1,X2))
        first(X1,mark(X2)) -> mark(first(X1,X2))
        s(mark(X)) -> mark(s(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        from(mark(X)) -> mark(from(X))
        proper(first(X1,X2)) -> first(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(nil()) -> ok(nil())
        proper(s(X)) -> s(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(from(X)) -> from(proper(X))
        first(ok(X1),ok(X2)) -> ok(first(X1,X2))
        s(ok(X)) -> ok(s(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        from(ok(X)) -> ok(from(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
       Usable Rule Processor:
        DPs:
         top#(ok(X)) -> top#(active(X))
        TRS:
         active(first(0(),X)) -> mark(nil())
         active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
         active(from(X)) -> mark(cons(X,from(s(X))))
         active(first(X1,X2)) -> first(active(X1),X2)
         active(first(X1,X2)) -> first(X1,active(X2))
         active(s(X)) -> s(active(X))
         active(cons(X1,X2)) -> cons(active(X1),X2)
         active(from(X)) -> from(active(X))
         first(mark(X1),X2) -> mark(first(X1,X2))
         first(X1,mark(X2)) -> mark(first(X1,X2))
         first(ok(X1),ok(X2)) -> ok(first(X1,X2))
         cons(mark(X1),X2) -> mark(cons(X1,X2))
         cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
         s(mark(X)) -> mark(s(X))
         s(ok(X)) -> ok(s(X))
         from(mark(X)) -> mark(from(X))
         from(ok(X)) -> ok(from(X))
        Arctic Interpretation Processor:
         dimension: 1
         usable rules:
          active(first(0(),X)) -> mark(nil())
          active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
          active(from(X)) -> mark(cons(X,from(s(X))))
          active(first(X1,X2)) -> first(active(X1),X2)
          active(first(X1,X2)) -> first(X1,active(X2))
          active(s(X)) -> s(active(X))
          active(cons(X1,X2)) -> cons(active(X1),X2)
          active(from(X)) -> from(active(X))
          first(mark(X1),X2) -> mark(first(X1,X2))
          first(X1,mark(X2)) -> mark(first(X1,X2))
          first(ok(X1),ok(X2)) -> ok(first(X1,X2))
          cons(mark(X1),X2) -> mark(cons(X1,X2))
          cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
          s(mark(X)) -> mark(s(X))
          s(ok(X)) -> ok(s(X))
          from(mark(X)) -> mark(from(X))
          from(ok(X)) -> ok(from(X))
         interpretation:
          [top#](x0) = x0,
          
          [ok](x0) = 1x0 + 2,
          
          [from](x0) = x0,
          
          [cons](x0, x1) = x0,
          
          [s](x0) = x0 + 1,
          
          [mark](x0) = x0,
          
          [nil] = 3,
          
          [active](x0) = x0,
          
          [first](x0, x1) = 2x0 + 1x1 + 3,
          
          [0] = 1
         orientation:
          top#(ok(X)) = 1X + 2 >= X = top#(active(X))
          
          active(first(0(),X)) = 1X + 3 >= 3 = mark(nil())
          
          active(first(s(X),cons(Y,Z))) = 2X + 1Y + 3 >= Y = mark(cons(Y,first(X,Z)))
          
          active(from(X)) = X >= X = mark(cons(X,from(s(X))))
          
          active(first(X1,X2)) = 2X1 + 1X2 + 3 >= 2X1 + 1X2 + 3 = first(active(X1),X2)
          
          active(first(X1,X2)) = 2X1 + 1X2 + 3 >= 2X1 + 1X2 + 3 = first(X1,active(X2))
          
          active(s(X)) = X + 1 >= X + 1 = s(active(X))
          
          active(cons(X1,X2)) = X1 >= X1 = cons(active(X1),X2)
          
          active(from(X)) = X >= X = from(active(X))
          
          first(mark(X1),X2) = 2X1 + 1X2 + 3 >= 2X1 + 1X2 + 3 = mark(first(X1,X2))
          
          first(X1,mark(X2)) = 2X1 + 1X2 + 3 >= 2X1 + 1X2 + 3 = mark(first(X1,X2))
          
          first(ok(X1),ok(X2)) = 3X1 + 2X2 + 4 >= 3X1 + 2X2 + 4 = ok(first(X1,X2))
          
          cons(mark(X1),X2) = X1 >= X1 = mark(cons(X1,X2))
          
          cons(ok(X1),ok(X2)) = 1X1 + 2 >= 1X1 + 2 = ok(cons(X1,X2))
          
          s(mark(X)) = X + 1 >= X + 1 = mark(s(X))
          
          s(ok(X)) = 1X + 2 >= 1X + 2 = ok(s(X))
          
          from(mark(X)) = X >= X = mark(from(X))
          
          from(ok(X)) = 1X + 2 >= 1X + 2 = ok(from(X))
         problem:
          DPs:
           
          TRS:
           active(first(0(),X)) -> mark(nil())
           active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
           active(from(X)) -> mark(cons(X,from(s(X))))
           active(first(X1,X2)) -> first(active(X1),X2)
           active(first(X1,X2)) -> first(X1,active(X2))
           active(s(X)) -> s(active(X))
           active(cons(X1,X2)) -> cons(active(X1),X2)
           active(from(X)) -> from(active(X))
           first(mark(X1),X2) -> mark(first(X1,X2))
           first(X1,mark(X2)) -> mark(first(X1,X2))
           first(ok(X1),ok(X2)) -> ok(first(X1,X2))
           cons(mark(X1),X2) -> mark(cons(X1,X2))
           cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
           s(mark(X)) -> mark(s(X))
           s(ok(X)) -> ok(s(X))
           from(mark(X)) -> mark(from(X))
           from(ok(X)) -> ok(from(X))
         Qed
    
    DPs:
     active#(first(X1,X2)) -> active#(X1)
     active#(first(X1,X2)) -> active#(X2)
     active#(s(X)) -> active#(X)
     active#(cons(X1,X2)) -> active#(X1)
     active#(from(X)) -> active#(X)
    TRS:
     active(first(0(),X)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(s(X)) -> s(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(from(X)) -> from(active(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     s(mark(X)) -> mark(s(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     from(mark(X)) -> mark(from(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(s(X)) -> s(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(from(X)) -> from(proper(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     s(ok(X)) -> ok(s(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     from(ok(X)) -> ok(from(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(active#) = 0
     problem:
      DPs:
       
      TRS:
       active(first(0(),X)) -> mark(nil())
       active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(first(X1,X2)) -> first(active(X1),X2)
       active(first(X1,X2)) -> first(X1,active(X2))
       active(s(X)) -> s(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(from(X)) -> from(active(X))
       first(mark(X1),X2) -> mark(first(X1,X2))
       first(X1,mark(X2)) -> mark(first(X1,X2))
       s(mark(X)) -> mark(s(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       from(mark(X)) -> mark(from(X))
       proper(first(X1,X2)) -> first(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(nil()) -> ok(nil())
       proper(s(X)) -> s(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(from(X)) -> from(proper(X))
       first(ok(X1),ok(X2)) -> ok(first(X1,X2))
       s(ok(X)) -> ok(s(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       from(ok(X)) -> ok(from(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     proper#(first(X1,X2)) -> proper#(X2)
     proper#(first(X1,X2)) -> proper#(X1)
     proper#(s(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(from(X)) -> proper#(X)
    TRS:
     active(first(0(),X)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(s(X)) -> s(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(from(X)) -> from(active(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     s(mark(X)) -> mark(s(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     from(mark(X)) -> mark(from(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(s(X)) -> s(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(from(X)) -> from(proper(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     s(ok(X)) -> ok(s(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     from(ok(X)) -> ok(from(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(proper#) = 0
     problem:
      DPs:
       
      TRS:
       active(first(0(),X)) -> mark(nil())
       active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(first(X1,X2)) -> first(active(X1),X2)
       active(first(X1,X2)) -> first(X1,active(X2))
       active(s(X)) -> s(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(from(X)) -> from(active(X))
       first(mark(X1),X2) -> mark(first(X1,X2))
       first(X1,mark(X2)) -> mark(first(X1,X2))
       s(mark(X)) -> mark(s(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       from(mark(X)) -> mark(from(X))
       proper(first(X1,X2)) -> first(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(nil()) -> ok(nil())
       proper(s(X)) -> s(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(from(X)) -> from(proper(X))
       first(ok(X1),ok(X2)) -> ok(first(X1,X2))
       s(ok(X)) -> ok(s(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       from(ok(X)) -> ok(from(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     from#(mark(X)) -> from#(X)
     from#(ok(X)) -> from#(X)
    TRS:
     active(first(0(),X)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(s(X)) -> s(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(from(X)) -> from(active(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     s(mark(X)) -> mark(s(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     from(mark(X)) -> mark(from(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(s(X)) -> s(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(from(X)) -> from(proper(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     s(ok(X)) -> ok(s(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     from(ok(X)) -> ok(from(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(from#) = 0
     problem:
      DPs:
       
      TRS:
       active(first(0(),X)) -> mark(nil())
       active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(first(X1,X2)) -> first(active(X1),X2)
       active(first(X1,X2)) -> first(X1,active(X2))
       active(s(X)) -> s(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(from(X)) -> from(active(X))
       first(mark(X1),X2) -> mark(first(X1,X2))
       first(X1,mark(X2)) -> mark(first(X1,X2))
       s(mark(X)) -> mark(s(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       from(mark(X)) -> mark(from(X))
       proper(first(X1,X2)) -> first(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(nil()) -> ok(nil())
       proper(s(X)) -> s(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(from(X)) -> from(proper(X))
       first(ok(X1),ok(X2)) -> ok(first(X1,X2))
       s(ok(X)) -> ok(s(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       from(ok(X)) -> ok(from(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     cons#(mark(X1),X2) -> cons#(X1,X2)
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    TRS:
     active(first(0(),X)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(s(X)) -> s(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(from(X)) -> from(active(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     s(mark(X)) -> mark(s(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     from(mark(X)) -> mark(from(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(s(X)) -> s(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(from(X)) -> from(proper(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     s(ok(X)) -> ok(s(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     from(ok(X)) -> ok(from(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(cons#) = 1
     problem:
      DPs:
       cons#(mark(X1),X2) -> cons#(X1,X2)
      TRS:
       active(first(0(),X)) -> mark(nil())
       active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(first(X1,X2)) -> first(active(X1),X2)
       active(first(X1,X2)) -> first(X1,active(X2))
       active(s(X)) -> s(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(from(X)) -> from(active(X))
       first(mark(X1),X2) -> mark(first(X1,X2))
       first(X1,mark(X2)) -> mark(first(X1,X2))
       s(mark(X)) -> mark(s(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       from(mark(X)) -> mark(from(X))
       proper(first(X1,X2)) -> first(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(nil()) -> ok(nil())
       proper(s(X)) -> s(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(from(X)) -> from(proper(X))
       first(ok(X1),ok(X2)) -> ok(first(X1,X2))
       s(ok(X)) -> ok(s(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       from(ok(X)) -> ok(from(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(cons#) = 0
      problem:
       DPs:
        
       TRS:
        active(first(0(),X)) -> mark(nil())
        active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(first(X1,X2)) -> first(active(X1),X2)
        active(first(X1,X2)) -> first(X1,active(X2))
        active(s(X)) -> s(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(from(X)) -> from(active(X))
        first(mark(X1),X2) -> mark(first(X1,X2))
        first(X1,mark(X2)) -> mark(first(X1,X2))
        s(mark(X)) -> mark(s(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        from(mark(X)) -> mark(from(X))
        proper(first(X1,X2)) -> first(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(nil()) -> ok(nil())
        proper(s(X)) -> s(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(from(X)) -> from(proper(X))
        first(ok(X1),ok(X2)) -> ok(first(X1,X2))
        s(ok(X)) -> ok(s(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        from(ok(X)) -> ok(from(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed
    
    DPs:
     s#(mark(X)) -> s#(X)
     s#(ok(X)) -> s#(X)
    TRS:
     active(first(0(),X)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(s(X)) -> s(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(from(X)) -> from(active(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     s(mark(X)) -> mark(s(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     from(mark(X)) -> mark(from(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(s(X)) -> s(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(from(X)) -> from(proper(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     s(ok(X)) -> ok(s(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     from(ok(X)) -> ok(from(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(s#) = 0
     problem:
      DPs:
       
      TRS:
       active(first(0(),X)) -> mark(nil())
       active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(first(X1,X2)) -> first(active(X1),X2)
       active(first(X1,X2)) -> first(X1,active(X2))
       active(s(X)) -> s(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(from(X)) -> from(active(X))
       first(mark(X1),X2) -> mark(first(X1,X2))
       first(X1,mark(X2)) -> mark(first(X1,X2))
       s(mark(X)) -> mark(s(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       from(mark(X)) -> mark(from(X))
       proper(first(X1,X2)) -> first(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(nil()) -> ok(nil())
       proper(s(X)) -> s(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(from(X)) -> from(proper(X))
       first(ok(X1),ok(X2)) -> ok(first(X1,X2))
       s(ok(X)) -> ok(s(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       from(ok(X)) -> ok(from(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Qed
    
    DPs:
     first#(mark(X1),X2) -> first#(X1,X2)
     first#(X1,mark(X2)) -> first#(X1,X2)
     first#(ok(X1),ok(X2)) -> first#(X1,X2)
    TRS:
     active(first(0(),X)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(s(X)) -> s(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(from(X)) -> from(active(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     s(mark(X)) -> mark(s(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     from(mark(X)) -> mark(from(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(s(X)) -> s(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(from(X)) -> from(proper(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     s(ok(X)) -> ok(s(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     from(ok(X)) -> ok(from(X))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Subterm Criterion Processor:
     simple projection:
      pi(first#) = 1
     problem:
      DPs:
       first#(mark(X1),X2) -> first#(X1,X2)
      TRS:
       active(first(0(),X)) -> mark(nil())
       active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
       active(from(X)) -> mark(cons(X,from(s(X))))
       active(first(X1,X2)) -> first(active(X1),X2)
       active(first(X1,X2)) -> first(X1,active(X2))
       active(s(X)) -> s(active(X))
       active(cons(X1,X2)) -> cons(active(X1),X2)
       active(from(X)) -> from(active(X))
       first(mark(X1),X2) -> mark(first(X1,X2))
       first(X1,mark(X2)) -> mark(first(X1,X2))
       s(mark(X)) -> mark(s(X))
       cons(mark(X1),X2) -> mark(cons(X1,X2))
       from(mark(X)) -> mark(from(X))
       proper(first(X1,X2)) -> first(proper(X1),proper(X2))
       proper(0()) -> ok(0())
       proper(nil()) -> ok(nil())
       proper(s(X)) -> s(proper(X))
       proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
       proper(from(X)) -> from(proper(X))
       first(ok(X1),ok(X2)) -> ok(first(X1,X2))
       s(ok(X)) -> ok(s(X))
       cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
       from(ok(X)) -> ok(from(X))
       top(mark(X)) -> top(proper(X))
       top(ok(X)) -> top(active(X))
     Subterm Criterion Processor:
      simple projection:
       pi(first#) = 0
      problem:
       DPs:
        
       TRS:
        active(first(0(),X)) -> mark(nil())
        active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
        active(from(X)) -> mark(cons(X,from(s(X))))
        active(first(X1,X2)) -> first(active(X1),X2)
        active(first(X1,X2)) -> first(X1,active(X2))
        active(s(X)) -> s(active(X))
        active(cons(X1,X2)) -> cons(active(X1),X2)
        active(from(X)) -> from(active(X))
        first(mark(X1),X2) -> mark(first(X1,X2))
        first(X1,mark(X2)) -> mark(first(X1,X2))
        s(mark(X)) -> mark(s(X))
        cons(mark(X1),X2) -> mark(cons(X1,X2))
        from(mark(X)) -> mark(from(X))
        proper(first(X1,X2)) -> first(proper(X1),proper(X2))
        proper(0()) -> ok(0())
        proper(nil()) -> ok(nil())
        proper(s(X)) -> s(proper(X))
        proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
        proper(from(X)) -> from(proper(X))
        first(ok(X1),ok(X2)) -> ok(first(X1,X2))
        s(ok(X)) -> ok(s(X))
        cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
        from(ok(X)) -> ok(from(X))
        top(mark(X)) -> top(proper(X))
        top(ok(X)) -> top(active(X))
      Qed