MAYBE

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

Proof:
 DP Processor:
  DPs:
   active#(from(X)) -> s#(X)
   active#(from(X)) -> from#(s(X))
   active#(from(X)) -> cons#(X,from(s(X)))
   active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
   active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
   active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
   active#(from(X)) -> active#(X)
   active#(from(X)) -> from#(active(X))
   active#(cons(X1,X2)) -> active#(X1)
   active#(cons(X1,X2)) -> cons#(active(X1),X2)
   active#(s(X)) -> active#(X)
   active#(s(X)) -> s#(active(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#(sel(X1,X2)) -> active#(X1)
   active#(sel(X1,X2)) -> sel#(active(X1),X2)
   active#(sel(X1,X2)) -> active#(X2)
   active#(sel(X1,X2)) -> sel#(X1,active(X2))
   from#(mark(X)) -> from#(X)
   cons#(mark(X1),X2) -> cons#(X1,X2)
   s#(mark(X)) -> s#(X)
   first#(mark(X1),X2) -> first#(X1,X2)
   first#(X1,mark(X2)) -> first#(X1,X2)
   sel#(mark(X1),X2) -> sel#(X1,X2)
   sel#(X1,mark(X2)) -> sel#(X1,X2)
   proper#(from(X)) -> proper#(X)
   proper#(from(X)) -> from#(proper(X))
   proper#(cons(X1,X2)) -> proper#(X2)
   proper#(cons(X1,X2)) -> proper#(X1)
   proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
   proper#(s(X)) -> proper#(X)
   proper#(s(X)) -> s#(proper(X))
   proper#(first(X1,X2)) -> proper#(X2)
   proper#(first(X1,X2)) -> proper#(X1)
   proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
   proper#(sel(X1,X2)) -> proper#(X2)
   proper#(sel(X1,X2)) -> proper#(X1)
   proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
   from#(ok(X)) -> from#(X)
   cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
   s#(ok(X)) -> s#(X)
   first#(ok(X1),ok(X2)) -> first#(X1,X2)
   sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
   top#(mark(X)) -> proper#(X)
   top#(mark(X)) -> top#(proper(X))
   top#(ok(X)) -> active#(X)
   top#(ok(X)) -> top#(active(X))
  TRS:
   active(from(X)) -> mark(cons(X,from(s(X))))
   active(first(0(),Z)) -> mark(nil())
   active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
   active(sel(0(),cons(X,Z))) -> mark(X)
   active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
   active(from(X)) -> from(active(X))
   active(cons(X1,X2)) -> cons(active(X1),X2)
   active(s(X)) -> s(active(X))
   active(first(X1,X2)) -> first(active(X1),X2)
   active(first(X1,X2)) -> first(X1,active(X2))
   active(sel(X1,X2)) -> sel(active(X1),X2)
   active(sel(X1,X2)) -> sel(X1,active(X2))
   from(mark(X)) -> mark(from(X))
   cons(mark(X1),X2) -> mark(cons(X1,X2))
   s(mark(X)) -> mark(s(X))
   first(mark(X1),X2) -> mark(first(X1,X2))
   first(X1,mark(X2)) -> mark(first(X1,X2))
   sel(mark(X1),X2) -> mark(sel(X1,X2))
   sel(X1,mark(X2)) -> mark(sel(X1,X2))
   proper(from(X)) -> from(proper(X))
   proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
   proper(s(X)) -> s(proper(X))
   proper(first(X1,X2)) -> first(proper(X1),proper(X2))
   proper(0()) -> ok(0())
   proper(nil()) -> ok(nil())
   proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
   from(ok(X)) -> ok(from(X))
   cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
   s(ok(X)) -> ok(s(X))
   first(ok(X1),ok(X2)) -> ok(first(X1,X2))
   sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
   top(mark(X)) -> top(proper(X))
   top(ok(X)) -> top(active(X))
  EDG Processor:
   DPs:
    active#(from(X)) -> s#(X)
    active#(from(X)) -> from#(s(X))
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(from(X)) -> active#(X)
    active#(from(X)) -> from#(active(X))
    active#(cons(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(s(X)) -> active#(X)
    active#(s(X)) -> s#(active(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#(sel(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    from#(mark(X)) -> from#(X)
    cons#(mark(X1),X2) -> cons#(X1,X2)
    s#(mark(X)) -> s#(X)
    first#(mark(X1),X2) -> first#(X1,X2)
    first#(X1,mark(X2)) -> first#(X1,X2)
    sel#(mark(X1),X2) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    proper#(from(X)) -> proper#(X)
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X)
    proper#(s(X)) -> s#(proper(X))
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    from#(ok(X)) -> from#(X)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    s#(ok(X)) -> s#(X)
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X))
   TRS:
    active(from(X)) -> mark(cons(X,from(s(X))))
    active(first(0(),Z)) -> mark(nil())
    active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
    active(sel(0(),cons(X,Z))) -> mark(X)
    active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
    active(from(X)) -> from(active(X))
    active(cons(X1,X2)) -> cons(active(X1),X2)
    active(s(X)) -> s(active(X))
    active(first(X1,X2)) -> first(active(X1),X2)
    active(first(X1,X2)) -> first(X1,active(X2))
    active(sel(X1,X2)) -> sel(active(X1),X2)
    active(sel(X1,X2)) -> sel(X1,active(X2))
    from(mark(X)) -> mark(from(X))
    cons(mark(X1),X2) -> mark(cons(X1,X2))
    s(mark(X)) -> mark(s(X))
    first(mark(X1),X2) -> mark(first(X1,X2))
    first(X1,mark(X2)) -> mark(first(X1,X2))
    sel(mark(X1),X2) -> mark(sel(X1,X2))
    sel(X1,mark(X2)) -> mark(sel(X1,X2))
    proper(from(X)) -> from(proper(X))
    proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
    proper(s(X)) -> s(proper(X))
    proper(first(X1,X2)) -> first(proper(X1),proper(X2))
    proper(0()) -> ok(0())
    proper(nil()) -> ok(nil())
    proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
    from(ok(X)) -> ok(from(X))
    cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
    s(ok(X)) -> ok(s(X))
    first(ok(X1),ok(X2)) -> ok(first(X1,X2))
    sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
    top(mark(X)) -> top(proper(X))
    top(ok(X)) -> top(active(X))
   graph:
    top#(ok(X)) -> top#(active(X)) -> top#(mark(X)) -> proper#(X)
    top#(ok(X)) -> top#(active(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> active#(X)
    top#(ok(X)) -> top#(active(X)) -> top#(ok(X)) -> top#(active(X))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> cons#(X,from(s(X)))
    top#(ok(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    top#(ok(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    top#(ok(X)) -> active#(X) -> active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    top#(ok(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
    top#(ok(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    top#(ok(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    top#(ok(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    top#(ok(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X1)
    top#(ok(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    top#(ok(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X2)
    top#(ok(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    top#(mark(X)) -> top#(proper(X)) -> top#(mark(X)) -> proper#(X)
    top#(mark(X)) -> top#(proper(X)) ->
    top#(mark(X)) -> top#(proper(X))
    top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> active#(X)
    top#(mark(X)) -> top#(proper(X)) -> top#(ok(X)) -> top#(active(X))
    top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    top#(mark(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    top#(mark(X)) -> proper#(X) -> proper#(first(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(first(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    top#(mark(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X2)
    top#(mark(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X1)
    top#(mark(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(sel(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2)) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(first(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2)) ->
    first#(mark(X1),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#(ok(X1),ok(X2)) -> first#(X1,X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X2) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> proper#(X)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(s(X)) -> s#(proper(X))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(cons(X1,X2)) -> proper#(X1) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2)) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) -> proper#(from(X)) -> from#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(cons(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(s(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(s(X)) -> proper#(X) -> proper#(first(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(first(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(s(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X2)
    proper#(s(X)) -> proper#(X) -> proper#(sel(X1,X2)) -> proper#(X1)
    proper#(s(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(s(X)) -> s#(proper(X)) -> s#(mark(X)) -> s#(X)
    proper#(s(X)) -> s#(proper(X)) -> s#(ok(X)) -> s#(X)
    proper#(from(X)) -> proper#(X) -> proper#(from(X)) -> proper#(X)
    proper#(from(X)) -> proper#(X) ->
    proper#(from(X)) -> from#(proper(X))
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(cons(X1,X2)) -> cons#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> proper#(X)
    proper#(from(X)) -> proper#(X) -> proper#(s(X)) -> s#(proper(X))
    proper#(from(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(first(X1,X2)) -> first#(proper(X1),proper(X2))
    proper#(from(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> proper#(X2)
    proper#(from(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> proper#(X1)
    proper#(from(X)) -> proper#(X) ->
    proper#(sel(X1,X2)) -> sel#(proper(X1),proper(X2))
    proper#(from(X)) -> from#(proper(X)) ->
    from#(mark(X)) -> from#(X)
    proper#(from(X)) -> from#(proper(X)) ->
    from#(ok(X)) -> from#(X)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    sel#(mark(X1),X2) -> sel#(X1,X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    sel#(mark(X1),X2) -> sel#(X1,X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    sel#(mark(X1),X2) -> sel#(X1,X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    sel#(X1,mark(X2)) -> sel#(X1,X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    first#(ok(X1),ok(X2)) -> first#(X1,X2) ->
    first#(mark(X1),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#(ok(X1),ok(X2)) -> first#(X1,X2)
    first#(mark(X1),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#(mark(X1),X2) -> first#(X1,X2) ->
    first#(ok(X1),ok(X2)) -> first#(X1,X2)
    first#(X1,mark(X2)) -> first#(X1,X2) ->
    first#(mark(X1),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#(ok(X1),ok(X2)) -> first#(X1,X2)
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2) ->
    cons#(mark(X1),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#(mark(X1),X2) -> cons#(X1,X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    from#(ok(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
    from#(ok(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
    from#(mark(X)) -> from#(X) -> from#(mark(X)) -> from#(X)
    from#(mark(X)) -> from#(X) -> from#(ok(X)) -> from#(X)
    s#(ok(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    s#(ok(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    s#(mark(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    s#(mark(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(active(X1),X2) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(active(X1),X2) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(active(X1),X2) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2)) ->
    sel#(mark(X1),X2) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2)) ->
    sel#(X1,mark(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> sel#(X1,active(X2)) ->
    sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> s#(X)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(s(X))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(active(X))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(sel(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z) ->
    first#(mark(X1),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#(ok(X1),ok(X2)) -> first#(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))) -> cons#(Y,first(X,Z)) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(first(X1,X2)) -> first#(active(X1),X2) ->
    first#(mark(X1),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#(ok(X1),ok(X2)) -> first#(X1,X2)
    active#(first(X1,X2)) -> first#(X1,active(X2)) ->
    first#(mark(X1),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#(ok(X1),ok(X2)) -> first#(X1,X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> s#(X)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(s(X))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    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#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(from(X)) -> from#(active(X))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(s(X)) -> s#(active(X))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> active#(X1)
    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#(X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(first(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(first(X1,X2)) -> active#(X2) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    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#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X1)
    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#(X2)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(first(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(first(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(cons(X1,X2)) -> cons#(active(X1),X2) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> s#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(s(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    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#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(from(X)) -> from#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> active#(X)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(s(X)) -> s#(active(X))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> active#(X1)
    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#(X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(cons(X1,X2)) -> active#(X1) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(s(X)) -> s#(active(X)) -> s#(mark(X)) -> s#(X)
    active#(s(X)) -> s#(active(X)) -> s#(ok(X)) -> s#(X)
    active#(s(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    active#(s(X)) -> active#(X) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(s(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(s(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(s(X)) -> active#(X) ->
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(s(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    active#(s(X)) -> active#(X) -> active#(from(X)) -> from#(active(X))
    active#(s(X)) -> active#(X) -> active#(cons(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(s(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(s(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(first(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(s(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X1)
    active#(s(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(s(X)) -> active#(X) -> active#(sel(X1,X2)) -> active#(X2)
    active#(s(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(X1,active(X2))
    active#(from(X)) -> cons#(X,from(s(X))) ->
    cons#(mark(X1),X2) -> cons#(X1,X2)
    active#(from(X)) -> cons#(X,from(s(X))) ->
    cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
    active#(from(X)) -> from#(s(X)) -> from#(mark(X)) -> from#(X)
    active#(from(X)) -> from#(s(X)) -> from#(ok(X)) -> from#(X)
    active#(from(X)) -> from#(active(X)) ->
    from#(mark(X)) -> from#(X)
    active#(from(X)) -> from#(active(X)) -> from#(ok(X)) -> from#(X)
    active#(from(X)) -> s#(X) -> s#(mark(X)) -> s#(X)
    active#(from(X)) -> s#(X) -> s#(ok(X)) -> s#(X)
    active#(from(X)) -> active#(X) -> active#(from(X)) -> s#(X)
    active#(from(X)) -> active#(X) -> active#(from(X)) -> from#(s(X))
    active#(from(X)) -> active#(X) ->
    active#(from(X)) -> cons#(X,from(s(X)))
    active#(from(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> first#(X,Z)
    active#(from(X)) -> active#(X) ->
    active#(first(s(X),cons(Y,Z))) -> cons#(Y,first(X,Z))
    active#(from(X)) -> active#(X) ->
    active#(sel(s(X),cons(Y,Z))) -> sel#(X,Z)
    active#(from(X)) -> active#(X) -> active#(from(X)) -> active#(X)
    active#(from(X)) -> active#(X) ->
    active#(from(X)) -> from#(active(X))
    active#(from(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(cons(X1,X2)) -> cons#(active(X1),X2)
    active#(from(X)) -> active#(X) -> active#(s(X)) -> active#(X)
    active#(from(X)) -> active#(X) -> active#(s(X)) -> s#(active(X))
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> active#(X2)
    active#(from(X)) -> active#(X) ->
    active#(first(X1,X2)) -> first#(X1,active(X2))
    active#(from(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> active#(X1)
    active#(from(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> sel#(active(X1),X2)
    active#(from(X)) -> active#(X) ->
    active#(sel(X1,X2)) -> active#(X2)
    active#(from(X)) -> active#(X) -> active#(sel(X1,X2)) -> sel#(X1,active(X2))
   SCC Processor:
    #sccs: 8
    #rules: 29
    #arcs: 359/2401
    DPs:
     top#(ok(X)) -> top#(active(X))
     top#(mark(X)) -> top#(proper(X))
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     proper#(sel(X1,X2)) -> proper#(X1)
     proper#(sel(X1,X2)) -> proper#(X2)
     proper#(first(X1,X2)) -> proper#(X1)
     proper#(first(X1,X2)) -> proper#(X2)
     proper#(s(X)) -> proper#(X)
     proper#(cons(X1,X2)) -> proper#(X1)
     proper#(cons(X1,X2)) -> proper#(X2)
     proper#(from(X)) -> proper#(X)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     active#(sel(X1,X2)) -> active#(X2)
     active#(sel(X1,X2)) -> active#(X1)
     active#(first(X1,X2)) -> active#(X2)
     active#(first(X1,X2)) -> active#(X1)
     active#(s(X)) -> active#(X)
     active#(cons(X1,X2)) -> active#(X1)
     active#(from(X)) -> active#(X)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     from#(ok(X)) -> from#(X)
     from#(mark(X)) -> from#(X)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     cons#(ok(X1),ok(X2)) -> cons#(X1,X2)
     cons#(mark(X1),X2) -> cons#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     s#(ok(X)) -> s#(X)
     s#(mark(X)) -> s#(X)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     first#(ok(X1),ok(X2)) -> first#(X1,X2)
     first#(X1,mark(X2)) -> first#(X1,X2)
     first#(mark(X1),X2) -> first#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open
    
    DPs:
     sel#(ok(X1),ok(X2)) -> sel#(X1,X2)
     sel#(X1,mark(X2)) -> sel#(X1,X2)
     sel#(mark(X1),X2) -> sel#(X1,X2)
    TRS:
     active(from(X)) -> mark(cons(X,from(s(X))))
     active(first(0(),Z)) -> mark(nil())
     active(first(s(X),cons(Y,Z))) -> mark(cons(Y,first(X,Z)))
     active(sel(0(),cons(X,Z))) -> mark(X)
     active(sel(s(X),cons(Y,Z))) -> mark(sel(X,Z))
     active(from(X)) -> from(active(X))
     active(cons(X1,X2)) -> cons(active(X1),X2)
     active(s(X)) -> s(active(X))
     active(first(X1,X2)) -> first(active(X1),X2)
     active(first(X1,X2)) -> first(X1,active(X2))
     active(sel(X1,X2)) -> sel(active(X1),X2)
     active(sel(X1,X2)) -> sel(X1,active(X2))
     from(mark(X)) -> mark(from(X))
     cons(mark(X1),X2) -> mark(cons(X1,X2))
     s(mark(X)) -> mark(s(X))
     first(mark(X1),X2) -> mark(first(X1,X2))
     first(X1,mark(X2)) -> mark(first(X1,X2))
     sel(mark(X1),X2) -> mark(sel(X1,X2))
     sel(X1,mark(X2)) -> mark(sel(X1,X2))
     proper(from(X)) -> from(proper(X))
     proper(cons(X1,X2)) -> cons(proper(X1),proper(X2))
     proper(s(X)) -> s(proper(X))
     proper(first(X1,X2)) -> first(proper(X1),proper(X2))
     proper(0()) -> ok(0())
     proper(nil()) -> ok(nil())
     proper(sel(X1,X2)) -> sel(proper(X1),proper(X2))
     from(ok(X)) -> ok(from(X))
     cons(ok(X1),ok(X2)) -> ok(cons(X1,X2))
     s(ok(X)) -> ok(s(X))
     first(ok(X1),ok(X2)) -> ok(first(X1,X2))
     sel(ok(X1),ok(X2)) -> ok(sel(X1,X2))
     top(mark(X)) -> top(proper(X))
     top(ok(X)) -> top(active(X))
    Open